【发布时间】:2022-03-10 18:29:59
【问题描述】:
我正在使用Spring for GraphQL(版本 2.7.0-M1)。
在我的域模型中,很多属性都返回一个对象Foo。该对象必须根据来自GraphQlContext 的可用数据序列化为字符串。所以架构看起来像:
type Parent {
code: String!
foo: String
...
}
使用@SchemaMapping 很容易做到这一点对于特定的父类型。
@SchemaMapping(typeName = "Parent", field = "foo")
public String foo(Parent parent, DataFetchingEnvironment env) {
var context = env.getGraphQlContext();
return ...
但是,这不是很干燥。我正在寻找一种将这段代码放在一个地方的方法,比如自定义标量。 有没有办法用 spring-graphql / graphql-java 做到这一点?
示例
一个例子是我们使用的Localized<T> 对象。例如,Product 实例具有标题和描述(以及更多)的 Localized<String> 属性。
对于 GraphQL 查询,我们可以设置上下文,上下文的一部分是Locale。对于所有Localized 属性值,该值可以转换为区域设置的字符串值。我们正在寻找一种自动执行此操作的方法。否则会创建很多样板代码
【问题讨论】:
标签: spring-boot graphql-java spring-graphql