Graphql架构doku自动显示输入类型与输入



我已经按照自述添加了leangen/graphql-spqr。在此之前,我们有像customtype.types.gql.

中那样的graphql类型的自定义实现。实现后,一切工作正常,除了被称为OperatorInput的类型,在自动生成的图形文档中命名,如&;operatorinputinput&;我试着在声明中像这样改变它:

@GraphQLArgument(name = "OperatorInput", description = "Required fields for Operator") OperatorInput operator

但是它没有被应用。你知道什么解决办法吗?

这是预期的。请记住,在GraphQL的类型系统中,输入和输出类型是严格不同的。假设你在Java中有这样的代码:

public Book saveBook(Book in) {...}

作为返回类型的Book和作为参数类型的Book在GraphQL中是两种不同的类型,并且必须具有唯一的名称。因此,自动添加Input以使名称唯一。

如果你100%确定你想要覆盖这个,通过GraphQLSchemaGenerator#withTypeInfoGenerator注册一个自定义的TypeInfoGenerator。您可以继承DefaultTypeInfoGenerator并覆盖generateInputTypeName。但是!请注意,如果您最终为两个不同的类型生成相同的名称,那么所有的都将崩溃。. 因此,如果类名已经以Input结尾,则可能只删除后缀Input,并且永远不要将此类用于输出。

顺便说一下,@GraphQLArgument设置参数的名称,而不是参数的类型的名称。

最新更新