簡體   English   中英

阿波羅聯盟實體參考工作不正常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM