領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多我很高興代表 Spring for GraphQL 團隊宣佈我們的第一個 1.3 里程碑的釋出。該版本包含本文中描述的許多新功能。
GraphQlClient 為透過任何傳輸(包括 HTTP、WebSocket 和 RSocket)進行 GraphQL 請求提供了一個通用工作流。隨著 Java 21 中 Project Loom 的可用性,以及 Spring Framework 6.1 中新的同步 RestClient 的出現,我們現在增加了在阻塞堆疊上使用 GraphQlClient 並使用同步 API 的選項。有關如何使用基於 RestClient 的傳輸建立 GraphQlClient 的詳細資訊,請參閱參考文件。
GraphQlClient 繼續是阻塞和非阻塞傳輸上的通用 API,現在還提供同步或非同步使用的選擇。這意味著在構建時,您可以選擇在阻塞或非阻塞傳輸上執行,在執行時,您可以保留同步或非同步執行請求的選擇。
要執行 GraphQL 請求,您需要以文字、字串字面量或從文件檔案載入的形式提供 GraphQL 操作。或者,DGS Codegen 可以生成 Java 客戶端 API 來定義請求。我們現在添加了一個新的 DgsGraphQlClient,可以輕鬆使用 DGS 程式碼生成的類。
DgsGraphQlClient 是任何 GraphQlClient 的輕量級包裝器。它提供了一個專門的工作流來定義請求,但其餘部分使用 GraphQlClient 來執行請求,並公開相同的 API 來處理響應。
有關詳細資訊,請參閱參考文件。此外,Spring Initializer 支援建立啟用 DGS codegen 的 Spring GraphQL 專案。
我們現在提供對基於 GraphQL over SSE 規範,使用 Spring MVC 和 WebFlux 處理透過 SSE 的 GraphQL 訂閱請求的支援。有關詳細資訊,請參閱參考文件。
在客戶端,HttpGraphQlClient 現在支援透過 SSE 的 GraphQL 訂閱。
當聯合 GraphQL 服務啟動時,它需要透過 federation-jvm 庫初始化 GraphQLSchema,以新增對聯合指令的支援,並處理對聯合實體型別的請求。
我們現在提供 FederationSchemaFactory 來執行此配置步驟。該工廠檢測 @EntityMapping 控制器方法,您可以使用這些方法載入聯合實體型別。這些方法可以使用 @Argument 註釋的方法引數來訪問帶有型別轉換的實體 ID 值。它們可以同步或非同步執行。它們還可以透過 @GraphQlExceptionHandler 方法將異常解析為 GraphQLError。
有關詳細資訊,請參閱參考文件。
最後但同樣重要的是,我們與 DGS 團隊合作,為 Spring GraphQL 應用程式奠定了一個共同的基礎。您可以閱讀摘要瞭解這項工作。因此,DGS Framework 中正在完成一項新的整合,並且在 Spring for GraphQL 1.2.5 版本中進行了一些重要的更新,以實現該整合,造福所有 Spring for GraphQL 應用程式。我們感謝 DGS 團隊,並期待我們繼續合作!
請透過 https://repo.spring.io/milestone 試用 1.3 M1 版本,並在我們的問題跟蹤器上向我們提供反饋!