首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Graphql-java中的自定义标量

Graphql-java中的自定义标量
EN

Stack Overflow用户
提问于 2017-09-04 18:10:16
回答 2查看 10.3K关注 0票数 6

我们计划在我们的应用程序中使用Graphql作为后端服务器。我们选择Graphql-Java来开发我们的POC。我们遇到了一个创建我们自己的标量类型来处理java.util.Map对象类型的机构。

我们还没有找到任何关于创建自定义标量类型的文档。在如下示例代码中

代码语言:javascript
复制
RuntimeWiring buildRuntimeWiring() {
    return RuntimeWiring.newRuntimeWiring()
            .scalar(CustomScalar)

如何实现CustomScalar对象。需要帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-06 19:33:51

要大致了解如何制作标量,只需查看the existing ones并执行类似的操作。

java还有一个单独的项目用于额外的标量:graphql-java-extended-scalars。您可以在那里找到可用于动态结构的object scalar (a.k.a. JSON scalar),如Maps。

通过以下方式注册:

代码语言:javascript
复制
RuntimeWiring.newRuntimeWiring().scalar(ExtendedScalars.Object)
票数 7
EN

Stack Overflow用户

发布于 2018-04-18 21:16:36

在代码优先方法(SPQRv0.9.6)中,添加@GraphQLScalar就足够了。或者,也可以将标量定义添加到GraphQLSchemaGenerator:

代码语言:javascript
复制
new GraphQLSchemaGenerator()
.withScalarMappingStrategy(new MyScalarStrategy())

并定义MyScalarStrategy:

代码语言:javascript
复制
class MyScalarStrategy extends DefaultScalarStrategy {

@Override
public boolean supports(AnnotatedType type) {
  return super.supports(type) || GenericTypeReflector.isSuperType(MyScalarStrategy.class, type.getType());
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46034801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档