将 graphql-java-extended-scalars 与 Quarkus 一起使用

问题描述

我想在使用 ExtendedScalars.Json 的应用程序中使用 graphql-java-extended-scalars 包中的 quarkus-smallrye-graphql,但我正在努力这样做。

给定一个测试模型类

public class Test {
  public String name;
  public Object description;
}

以下GraphQLApi

@GraphQLApi
public class API {
  @Inject
  SomeService someService;

  @Query
  public Test gettest() {
    return someService.gettest();
  }
}

其中 Test 可能被描述为

{
  "name": "Test","description": {
    "hello": "world"
  }
}

字段 description 应该被视为 ExtendedScalars.Json,所以这个 GraphQL 查询的结果

{
  test {
    description
  }
}

应该是

{
  "data": {
    "test": {
      "description": {
        "hello": "world"
      }
    }
  }
}

然而,@ToScalar 注释不采取 ExtendedScalars.Json 并回退到 graphql-java 类似 public GraphQLSchema.Builder addScalar(@Observes GraphQLSchema.Builder builder) { ... } 手动替换类型和 QueryType 导致 AssertException 像>

graphql.AssertException:GraphQL 模式中的所有类型都必须具有唯一的名称。任何两个提供的类型都不能具有相同的名称。 提供的类型的名称不得与任何内置类型(包括标量和内省类型)冲突。 您已将“查询”类型从“GraphQLObjectType”重新定义为“GraphQLObjectType”

知道如何处理这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)