首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从GraphQL模式生成GraphQL操作

如何从GraphQL模式生成GraphQL操作
EN

Stack Overflow用户
提问于 2020-08-16 19:25:09
回答 1查看 1.9K关注 0票数 5

我正在寻找一种方法,使开发人员的工作流程更有效的同时GraphQL。

目前,我在前台使用graphql-code-generator从我的GraphQL服务器生成类型。

这很棒,但这只是生成类型。为了生成突变、查询和订阅的方法,我需要为我的前端项目中的每个操作创建一个GraphQL文档,例如:

代码语言:javascript
运行
复制
file addPost.graphql

mutation addPost {
...
}
...

我发现必须创建一个额外的addPost.graphql来生成这个方法有点多余,因为它已经在我的GraphQL服务器上声明了。

有没有插件/配置可以生成这些方法,我可以在项目中使用,而不必手动创建额外的GraphQL文档?

下面是我的GraphQL生成器yml文件

代码语言:javascript
运行
复制
# graphql-generator.yml
overwrite: true
schema: https://localhost:8088/query
documents: ./libs/**/*.graphql          <----- generating these *.graphql files would be great! 
generates:
  libs/graphql/src/lib/generated/graphql.ts:
    plugins:
      - "typescript"
      - "typescript-resolvers"
      - "typescript-operations"
      - "typescript-apollo-angular"
  ./graphql.schema.json:
    plugins:
      - "introspection"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-16 19:50:54

GraphQL的核心概念之一是允许组件或任何其他使用者选择他们需要的字段,而不是由其他东西为他们决定(后端开发人员/服务器/代码)。

此外,基于GraphQL模式生成操作也很棘手--由于图的性质,如果没有一组约束(例如:要达到什么嵌套级别?如何处理循环链接?如果发生争执,你该怎么办?如果模式发生更改,该怎么办?以及更多内容)

GraphQL代码生成器没有这样做,因为我们认为使用GraphQL层的开发人员应该决定字段。

在我们开发的其他一些解决方案中,我们需要这样的工具来生成选择集,但需要一些预定义的约束。下面的注释对其进行了汇总,并提供了生成这些内容的代码示例:https://github.com/dotansimha/graphql-code-generator/discussions/2349#discussioncomment-15754

如果您愿意,您可以将它们生成到一个文件中,然后将其提供给codegen,或者您可以在您的项目中创建一个自定义文档加载器来动态创建它(https://graphql-code-generator.com/docs/getting-started/documents-field#custom-document-loader)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63436277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档