graphql-java:如何在以编程方式生成 graphql 模式时添加自定义标量类型?
Posted
技术标签:
【中文标题】graphql-java:如何在以编程方式生成 graphql 模式时添加自定义标量类型?【英文标题】:graphql-java: How to add custom scalar type while generating graphql schema programmatically? 【发布时间】:2020-10-01 12:34:50 【问题描述】:我正在使用 graphql-java 构建一个 graphql 模式。目前我以编程方式构建所有类型并使用以下语句来构建架构:
/* Construct the schema */
GraphQLSchema schema = GraphQLSchema.newSchema()
.query(query)
.mutation(mutations)
.additionalTypes(types)
.codeRegistry(codeRegistryBuilder.build())
.build();
我想添加一个自定义标量类型来处理 JSON 对象。我看到的所有添加自定义标量类型的示例都使用 RuntimeWiring。他们建议我应该做以下模型:
RuntimeWiring buildRuntimeWiring()
return RuntimeWiring.newRuntimeWiring()
.scalar(CustomScalar)
GraphQLSchema schema = new SchemaGenerator().makeExecutableSchema(registry, runtimeWiring);
由于我没有使用 RuntimeWiring,我想知道如何添加自定义标量类型。非常感谢您的帮助。
谢谢, 饶
【问题讨论】:
【参考方案1】:您可以直接实例化 GraphQLScalarType
实例并将其添加到 GraphQL 构建器中的其他类型:
GraphQLScalarType fooScaler = new GraphQLFooScaler();
types.add(fooScaler);
GraphQLSchema schema = GraphQLSchema.newSchema()
.query(query)
.mutation(mutations)
.additionalTypes(types)
.codeRegistry(codeRegistryBuilder.build())
.build();
SchemaGenerator
仅在您从 GraphQL SDL 构建架构时使用。如果在代码中手动构建Schema,则不需要。
【讨论】:
很高兴听到。所以请考虑投票支持我的答案或接受它?谢谢。以上是关于graphql-java:如何在以编程方式生成 graphql 模式时添加自定义标量类型?的主要内容,如果未能解决你的问题,请参考以下文章
如何在以编程方式创建实体时设置 NSManagedObjectModel 的配置。
如何使用 XCTest 在以编程方式添加的 UIView 上测试 UILabel