[英]Apollo Federation Entity Reference Not Working Properly
一段時間以來,我一直在與 Apollo 實體及其參考文獻搏斗。 我已經按照這篇文章來實現文章(文章服務)和他們的作者(個人服務)之間的關系。 相關代碼如下:
// Article service type definitions
export const typeDefs = gql`
type Article @key(fields: "_id") @key(fields: "slug") {
_id: ID!
author: Person!
category: String
content: String
media: String
published: Boolean
slug: String!
subtitle: String
title: String!
}
...
`;
// Article service resolvers
...
Article: {
author: <IArticleAuthor> ((article) => {
return { __typename: 'Person', _id: article.author };
}),
},
...
// Person service resolvers
...
__resolveReference: (reference: { _id: string }) => {
return Person.findOne({ _id: { $eq: reference._id }});
},
...
出現的問題是我只得到了文章服務解析器頁面{ __typename: 'Person', _id: article.author };
當我真正提出請求時。 我期待一旦我提出獲取文章的請求,就會調用__resolverReference
function 但它沒有。 我是否缺少一些東西才能使其正常工作?
它最終成為 Person 服務中的一個問題。 我將__resolveReference
方法附加到解析器 object 的頂層而不是Person
屬性中。
export const resolvers = {
__resolveReference: (reference) => Person.findOne({ _id: { $eq: reference.id } });
}
相對
export const resolvers = {
Person: {
__resolveReference: (reference) => Person.findOne({ _id: { $eq: reference.id } });
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.