Spring for GraphQL 1.3 M1 版本釋出

版本釋出 | Rossen Stoyanchev | 2024 年 2 月 21 日 | ...

我代表 Spring for GraphQL 團隊,很高興宣佈我們的第一個 1.3 里程碑版本已可用。此版本包含本文中描述的許多新功能。

同步 GraphQlClient

GraphQlClient 為透過任何傳輸協議(包括 HTTP、WebSocket 和 RSocket)進行 GraphQL 請求提供了通用的工作流程。隨著 Java 21 中 Project Loom 的可用,以及 Spring Framework 6.1 中新的同步 RestClient 的推出,我們現在增加了在阻塞棧上使用 GraphQlClient 以及使用同步 API 的選項。有關如何使用基於 RestClient 的傳輸建立 GraphQlClient 的詳細資訊,請參閱參考文件

GraphQlClient 繼續作為阻塞和非阻塞傳輸協議的通用 API,現在還提供了同步或非同步使用的選擇。這意味著在構建時您可以選擇在阻塞或非阻塞傳輸上執行,而在執行時則保留了同步或非同步執行請求的選擇。

DgsGraphQlClient

為了執行 GraphQL 請求,您需要以文字形式提供 GraphQL 操作,可以是字串字面量,也可以從文件檔案載入。另外,DGS Codegen 可以生成 Java 客戶端 API 來定義請求。我們現在增加了一個新的 DgsGraphQlClient,它使得使用 DGS 生成的程式碼類變得容易。

DgsGraphQlClient 是任何 GraphQlClient 的一個輕量級包裝器。它提供了一個專門的工作流程來定義請求,但除此之外,它使用 GraphQlClient 來執行請求,並暴露相同的 API 來處理響應。

有關詳細資訊,請參閱參考文件。此外,Spring Initializer 支援建立啟用 DGS codegen 的 Spring GraphQL 專案。

SSE 支援

我們現在提供了基於 GraphQL over SSE 規範,透過 SSE 處理 Spring MVC 和 WebFlux 上的 GraphQL 訂閱請求的支援。詳細資訊請參閱參考文件

在客戶端,HttpGraphQlClient 現在支援透過 SSE 進行 GraphQL 訂閱。

Apollo Federation

當聯邦式 GraphQL 服務啟動時,它需要透過 federation-jvm 庫初始化 GraphQLSchema,以增加對聯邦指令的支援,並處理聯邦實體型別的請求。

我們現在提供 FederationSchemaFactory 來執行此配置步驟。該工廠檢測 @EntityMapping 控制器方法,您可以使用這些方法載入聯邦實體型別。這些方法可以使用 @Argument 註解的方法引數來訪問帶有型別轉換的實體 ID 值。它們可以同步或非同步執行。它們的異常也可以透過解析為 GraphQLError@GraphQlExceptionHandler 方法來解決。

詳細資訊請參閱參考文件

其他

最後同樣重要的是,我們與 DGS 團隊合作,為 Spring GraphQL 應用構建了一個通用基礎。您可以閱讀該工作的總結。因此,DGS Framework 中正在最終確定一個新的整合,並且在Spring for GraphQL 1.2.5 版本中進行了一些重要的更新,這些更新使得整合成為可能,從而惠及所有 Spring for GraphQL 應用。我們感謝 DGS 團隊,並期待繼續合作!

請透過 https://repo.spring.io/milestone 試用 1.3 M1 版本,並在我們的問題跟蹤器上向我們提供反饋!

訂閱 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速發展。

瞭解更多

獲取支援

Tanzu Spring 透過一個簡單的訂閱,提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

近期活動

檢視 Spring 社群的所有近期活動。

檢視全部