Spring for GraphQL 1.2.0-RC1 发布

发布 | Rossen Stoyanchev | 2023 年 4 月 19 日 | ...

我很高兴地宣布,Spring for GraphQL 1.2 的候选版本现已通过 https://repo.spring.io/milestone 提供。

Querydsl 和 Query By Example 的分页

M1 版本 中提供了用于 分页和排序 的抽象和基础结构,包括对 带注解的控制器方法 上的输入和输出类型的支持,从而最大限度地减少了应用程序需要执行的操作才能支持分页查询。

当前的候选版本通过将分页支持扩展到我们的 QuerydslQuery By Example DataFetcher 实现来完成此操作,这两个实现现在都公开了 scrollable 工厂方法。

此外,Querydsl 和 Query by Example 存储库的自动注册已扩展为适用于返回 连接类型 的查询。

模式映射检查

M1 版本提供了一个非常重要的 模式映射检查 功能,该功能检查所有模式字段是否都由 DataFetcher 注册覆盖,或者是否具有匹配的 Java 对象属性。

在当前的候选版本中,此功能已进一步扩展,以识别返回 连接类型 的分页查询,并在其模式类型上的 EdgeNode 类型以及 Java 类型的泛型参数内正确嵌套,以便正确比较其中的结构。

模式映射检查还已更新以支持模式接口,并报告由于 Java 类型信息不足而未检查的任何类型,例如在控制器方法返回类型中声明为 java.lang.Object 的模式 union 类型。

如果您尚未尝试过此功能,请尝试一下并提供您的反馈。

使用 Querydsl 和 Query By Example 的单个输入类型

对于只有一个参数且该参数是 GraphQL 输入类型的查询,Querydsl 和 Query by Example 的使用有点笨拙,需要一个人为的包装类型来包含单个参数,而实际数据嵌套在该参数的 GraphQL 输入类型的结构中。

在当前的候选版本中,Querydsl 和 Query by Example 存储库不再需要这种包装类型,它们现在可以绑定到直接反映 GraphQL 输入类型的对象。

使用直接字段访问进行参数绑定

Spring for GraphQL 参数绑定已经支持通过构造函数和属性初始化绑定到更高级别的目标对象,包括任何嵌套级别的对象结构。但是,有时属性名称可能遵循不同的约定,并且您可能不拥有这些对象并且无法更改它们。

在当前的候选版本中,我们添加了一个选项,允许回退到直接字段访问,这可能在这种情况下有所帮助。

最后

我们的下一站是 5 月 17 日的 GA 版本发布,随后是精彩的 Spring I/O 大会,Brian 和我将在会上发表 Spring for GraphQL 实战观察 的主题演讲。如果您将参加此次会议,请过来打个招呼。我们很乐意与您交流!

获取 Spring 新闻通讯

与 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部