从 TypeScript 生成 GraphQL 模式?

问题描述 投票:0回答:3

我最近刚刚开始使用 Apollo,希望通过新的 GraphQL 层公开一些现有的 REST API。

这些 REST 服务已经完全(请求和响应数据结构)被一组广泛的自定义 Typescript 类型定义所涵盖。

我希望找到一种方法来重用这些现有类型,并且也许在顶部添加一些额外的

Query
类型,能够生成 GraphQL 模式而不是重复代码。

令人惊讶的是,这似乎是一个相当罕见的用例?我发现很多工具可以从 GraphQL 生成 Typescript 定义,但相反的方向似乎很困难。

仅当所有自定义类型均为

classes 时,

type-graphql
才有效。这对我不起作用;我没有一个单个类,但这里有无数简单的
type

ts2graphql已经一年没有更新了,我什至无法让示例代码工作。

我还能尝试什么?

typescript graphql apollo
3个回答
3
投票

据我所知,没有办法从打字稿代码完全自动生成 graphql 模式,因为打字稿更具表现力,并且只能描述 graphql 实体,但不能描述查询、订阅和突变(不使用一些神奇命名的泛型类型)。

我发现不太受欢迎的项目ts-graphql可能对您在打字稿中半自动描述graphql模式有帮助。

同步 TypeScript 和 graphql 的更好方法可能是从 graphql 模式生成 TS 类型和接口。 graphql-code-generator.comApollo server 等热门项目可以用于这种方法。


0
投票

Pothos 可能可以在这里提供帮助。它专注于在 Typescript 中构建 GraphQL 模式,而不需要 type-graphql 的类要求。虽然您仍然需要手动定义 GraphQL 架构,但您应该能够利用现有类型。


0
投票

顶一下看看其他人是否对OP的问题有好的解决方案

© www.soinside.com 2019 - 2024. All rights reserved.