java - 如何使用 Netflix DGS graphql-dgs-extended-scalars JSON 标量(java/spring-boot,maven)?
问题描述
我遇到了一个问题,我想使用graphql-dgs-extended-scalars,特别是 JSON 标量,但是很难找到关于如何做到这一点的清晰教程。我确定他们在那里,但以防万一有人发现自己处于与我相同的情况,希望我下面的简单解释将为他们节省一些时间。
解决方案
安装
在 pom 文件中(特定于 Maven)
<dependency>
<groupId>com.netflix.graphql.dgs</groupId>
<artifactId>graphql-dgs-extended-scalars</artifactId>
<version>${netflix.graphql.dgs.version}</version>
</dependency>
在配置文件中(例如,application.yml)
dgs:
graphql:
extensions:
scalars:
objects:
enabled: true
使用标量(在本例中为 JSON)
在架构中
...
type SomeType {
thing: JSON!
}
...
input SomeTypeInput {
thing: JSON!
}
...
scalar JSON
在将用作数据提取器输入的类中
public class SomethingDTO
{
/**
* This does not have to be a Map, you could use another
* reasonable object like JSONObject, etc.
*/
public Map<String, Object> thing;
}
然后,您可以在任意形状的查询中将 json 格式的对象作为参数传入。
这仅适用于 JSON 标量,但大多数(全部?)在 lib 中找到的其他标量都遵循该模式。
推荐阅读
- forms - 当我单击文本表单字段时,它会弹出键盘进行输入,但我希望仅在用户双击时完成
- android - obj.getJSONArray 未获取 JSON 响应
- c# - 如何使用 c# 从 TFS api 获取 TFS 讨论评论
- docker - Docker 无法读取已在 PhpStorm 中更改的文件
- python - 如何计算两个包含列表的系列之间的相似性度量?
- sql - 具有不同值的列上的索引是否值得?
- flutter - Firebase 消息仅在登录 Flutter 时接收
- c# - Aspnet Zero Boilerplate 的服务电话服务
- python - 如何从同一文件中定义的类中调用私有(文件范围)函数
- apache-spark - Encoder和CatalystSerde是什么关系