我最近刚刚开始使用 Apollo,希望通过新的 GraphQL 层公开一些现有的 REST API。
这些 REST 服务已经完全(请求和响应数据结构)被一组广泛的自定义 Typescript 类型定义所涵盖。
我希望找到一种方法来重用这些现有类型,并且也许在顶部添加一些额外的
Query
类型,能够生成 GraphQL 模式而不是重复代码。
令人惊讶的是,这似乎是一个相当罕见的用例?我发现很多工具可以从 GraphQL 生成 Typescript 定义,但相反的方向似乎很困难。
仅当所有自定义类型均为class
es 时,
type-graphql才有效。这对我不起作用;我没有一个单个类,但这里有无数简单的
type
。
ts2graphql已经一年没有更新了,我什至无法让示例代码工作。
我还能尝试什么?
据我所知,没有办法从打字稿代码完全自动生成 graphql 模式,因为打字稿更具表现力,并且只能描述 graphql 实体,但不能描述查询、订阅和突变(不使用一些神奇命名的泛型类型)。
我发现不太受欢迎的项目ts-graphql可能对您在打字稿中半自动描述graphql模式有帮助。
同步 TypeScript 和 graphql 的更好方法可能是从 graphql 模式生成 TS 类型和接口。 graphql-code-generator.com 或 Apollo server 等热门项目可以用于这种方法。
Pothos 可能可以在这里提供帮助。它专注于在 Typescript 中构建 GraphQL 模式,而不需要 type-graphql 的类要求。虽然您仍然需要手动定义 GraphQL 架构,但您应该能够利用现有类型。
顶一下看看其他人是否对OP的问题有好的解决方案