我们计划在我们的应用程序中使用Graphql作为后端服务器。我们选择Graphql-Java来开发我们的POC。我们遇到了一个创建我们自己的标量类型来处理java.util.Map对象类型的机构。
我们还没有找到任何关于创建自定义标量类型的文档。在如下示例代码中
RuntimeWiring buildRuntimeWiring() {
return RuntimeWiring.newRuntimeWiring()
.scalar(CustomScalar)如何实现CustomScalar对象。需要帮助。
发布于 2017-09-06 19:33:51
要大致了解如何制作标量,只需查看the existing ones并执行类似的操作。
java还有一个单独的项目用于额外的标量:graphql-java-extended-scalars。您可以在那里找到可用于动态结构的object scalar (a.k.a. JSON scalar),如Maps。
通过以下方式注册:
RuntimeWiring.newRuntimeWiring().scalar(ExtendedScalars.Object)发布于 2018-04-18 21:16:36
在代码优先方法(SPQRv0.9.6)中,添加@GraphQLScalar就足够了。或者,也可以将标量定义添加到GraphQLSchemaGenerator:
new GraphQLSchemaGenerator()
.withScalarMappingStrategy(new MyScalarStrategy())并定义MyScalarStrategy:
class MyScalarStrategy extends DefaultScalarStrategy {
@Override
public boolean supports(AnnotatedType type) {
return super.supports(type) || GenericTypeReflector.isSuperType(MyScalarStrategy.class, type.getType());
}
}https://stackoverflow.com/questions/46034801
复制相似问题