Spring 在 Graphiql 中读取模式启动错误 UI

Spring Boot Error Reading Schema In Graphiql UI

我正在使用 JDK 11 和 Spring Boot 2.6.4 使用实验性 Graph QL 启动器创建一个 Graph QL 服务,然后是 Josh Long's YouTube demonstration:

    <dependency>
        <groupId>org.springframework.experimental</groupId>
        <artifactId>graphql-spring-boot-starter</artifactId>
        <version>1.0.0-M4</version>
    </dependency>

当然,Josh Long 的演示非常完美。

我的下一步是使用我自己的架构和模型对象扩展他的演示。我有一个存储库接口,它由内存中的实现支持,方法返回硬编码的对象列表。 graphiql UI 连接到服务,在模式中显示查询,并在我执行查询时向我显示硬编码对象。

最后一步是将内存存储库替换为连接到 Mongo 数据库的存储库。我还在应用程序中内置了一个 Swagger UI。 Swagger UI 连接到服务并允许我毫无问题地从 Mongo 数据库查询对象。

但是 graphiql UI 给我一个错误。控制台是干净的——没有抛出异常,没有记录错误消息。我一直没有找到正确的位置来设置断点以查看问题所在。我不明白为什么添加 Mongo DB 会破坏 Graph QL。如果有任何建议,我将不胜感激。

{
  "errors": [
    {
      "message": "Failed to execute 'text' on 'Response': body stream already read",
      "stack": "TypeError: Failed to execute 'text' on 'Response': body stream already read\n    at http://localhost:9090/ForAgentsGraphQlDataService/graphiql?path=/graphql:78:33"
    }
  ]
}

我通过进行以下更改使我的服务正常工作:

  1. 已升级到 Spring Boot 2.7.0,其中捆绑了 spring-boot-starter-graphql 的 2.7.0 版本。
  2. 删除了所有 LocalDate 字段以支持字符串。我看到一个日期字段没有被正确解析的异常。

现在 graphiql UI 可以完美运行了。没有更多的提取错误。该架构按预期工作。