0

我正在使用 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 我想知道如何添加自定义标量类型。我会很感激你的帮助。

谢谢,饶

4

1 回答 1

2

您可以直接实例化一个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,则不需要它。

于 2020-06-13T05:06:55.687 回答