graphql-spqr - Graphql Schema doku 使用 Input 自动显示 Input 类型
问题描述
如自述文件中所述,我添加了leagen/graphql-spqr。在我们有一个像 customtype.types.gql 这样的 graphql 类型的自定义实现之前。
实施后,一切正常,除了称为 OperatorInput 的类型,在自动生成的 graphql 文档中命名,如“OperatorInputInput”。我试图在声明中像这样更改它:
@GraphQLArgument(name = "OperatorInput", description = "Required fields for Operator") OperatorInput operator
但它没有被应用。你知道任何解决方法吗?
解决方案
这是有意的。请记住,在 GraphQL 的类型系统中,输入和输出类型是完全不同的。假设你在 Java 中有这个:
public Book saveBook(Book in) {...}
Book
返回类型和Book
参数类型在 GraphQL 中是两种不同的类型,并且必须具有唯一的名称。因此Input
会自动添加以使名称唯一。
如果您 100% 确定要覆盖它,请TypeInfoGenerator
通过GraphQLSchemaGenerator#withTypeInfoGenerator
. 您可以继承DefaultTypeInfoGenerator
和覆盖generateInputTypeName
. 但!请注意,如果您最终为 2 种不同的类型生成相同的名称,那么一切都会崩溃。Input
因此,如果类名已经结束Input
并且永远不会使用此类类进行输出,则可能只删除后缀。
顺便说一句@GraphQLArgument
,设置参数的名称,而不是参数类型的名称。
推荐阅读
- java - 如何使用 HLF 中的事件通知客户端块提交和/或事务状态?
- flutter - ReorderableListView 物理
- azure - 如何在 Kusto 中编写一个表格函数,采用表格和标量参数的组合,以便您可以在整个组织中重用和共享它?
- scala - 如果我无法将记录解析为 Long,我想跳过它
- vue.js - vue 脚本中的数据更改未反映在浏览器输出中
- html - 如何将样式表从外部 URL 应用到特定的反应组件
- python - 使用boost python将向量作为参数传递给python函数
- r - 尽管geom =“point”,R中的fviz_cluster()确实显示文本?
- python - 从不同的路径移动文件并替换如果任何文件已经存在
- python - Scrapy - 如何从产生的请求中将数据返回到主解析方法?