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 联合是不是可行?的主要内容,如果未能解决你的问题,请参考以下文章