【发布时间】:2021-06-01 13:13:42
【问题描述】:
我一直在与 Apollo 实体和它们的参考资料搏斗一段时间。我遵循this article 来实现文章(文章服务)与其作者(个人服务)之间的关系。相关代码如下:
// 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 函数,但它没有。我是否缺少一些东西才能使其正常工作?
【问题讨论】:
标签: javascript apollo