TypeGraphql 与 Apollo 联合是不是可行?
Posted
技术标签:
【中文标题】TypeGraphql 与 Apollo 联合是不是可行?【英文标题】:Is TypeGraphql with Apollo federation possible?TypeGraphql 与 Apollo 联合是否可行? 【发布时间】:2020-12-20 15:09:01 【问题描述】:我们计划迁移到 Apollo GraphQL,因为 Apollo 联合功能允许在单个 GraphQL API 后面统一多个微服务。但是我们目前正在使用 TypeGraphQL,我认为它们是不兼容的。原因是在阿波罗联盟中我看到你使用了特殊的@key 属性
/* example from docs */
const typeDefs = gql`
type Query
me: User
type User @key(fields: "id")
id: ID!
username: String
`;
但是,TypeGraphql 的架构是从类自动生成的。有没有办法仍然使用这两种技术,或者它们是相互排斥的?
【问题讨论】:
【参考方案1】:Typegraphql 已添加对它的支持,请查看此处的示例https://github.com/MichalLytek/type-graphql/tree/master/examples/apollo-federation
【讨论】:
【参考方案2】:虽然它通过使用@Directive 装饰器得到支持,但在大型项目中使用它并不容易。我目前正在一个复杂的项目中实现它,我对从另一个模式中引用某种类型所需的样板代码量不满意。这里有一些关于添加更好支持的对话: https://github.com/MichalLytek/type-graphql/issues/351#issuecomment-549156066 如果我有时间的话,我计划添加支持。
但它仍然没有实现。我创建了一个存储库,您可以在其中看到最小的示例(类似于 type-graphql 存储库中的一个): https://github.com/hrvojepavlinovic/apollo-federation-type-graphql
【讨论】:
以上是关于TypeGraphql 与 Apollo 联合是不是可行?的主要内容,如果未能解决你的问题,请参考以下文章
使用 TypeGraphQL 在浏览器中为 Apollo 本地状态生成 typedef 和解析器