API 版本控制

Spring WebFlux 支援 API 版本控制。本節概述了支援和底層策略。

另請參閱以下相關內容:

RestClientWebClientHTTP 服務客戶端以及 WebTestClient 的測試中也提供了 API 版本控制的客戶端支援。

ApiVersionStrategy

這是 API 版本控制的核心策略,它包含了所有與版本控制相關的配置偏好。它執行以下操作:

ApiVersionStrategy 幫助將請求對映到 @RequestMapping 控制器方法,並由 WebFlux 配置初始化。通常,應用程式不會直接與它互動。

ApiVersionResolver

此策略從請求中解析 API 版本。WebFlux 配置提供了內建選項,可從標頭、查詢引數、媒體型別引數或 URL 路徑中解析。您還可以使用自定義的 ApiVersionResolver

路徑解析器總是從指定的路徑段中解析版本,否則會引發 InvalidApiVersionException,因此它不能讓位給其他解析器。

ApiVersionParser

此策略有助於將原始版本值解析為 Comparable<?>,這有助於比較、排序和選擇版本。預設情況下,內建的 SemanticApiVersionParser 將版本解析為 majorminorpatch 整數值。如果不存在,次要版本和補丁版本值將設定為 0。

驗證

如果請求版本不受支援,則會引發 InvalidApiVersionException,導致 400 響應。預設情況下,支援的版本列表是從帶註解的控制器對映中宣告的版本初始化的,但您可以透過 WebFlux 配置中的一個標誌將其關閉,並僅使用配置中明確配置的版本。

預設情況下,啟用 API 版本控制時需要版本,如果不存在,則會引發 MissingApiVersionException,導致 400 響應。您可以將其設定為可選,在這種情況下將使用最新版本。您還可以指定要使用的預設版本。

ApiVersionDeprecationHandler

此策略可以配置為透過響應頭向客戶端傳送有關已棄用版本的提示和資訊。內建的 StandardApiVersionDeprecationHandler 可以設定 RFC 9745RFC 8594 中定義的 "Deprecation"、"Sunset" 和 "Link" 頭。您還可以為不同的頭配置自定義處理程式。

請求對映

ApiVersionStrategy 支援將請求對映到帶註解的控制器方法。有關更多詳細資訊,請參閱 API 版本

© . This site is unofficial and not affiliated with VMware.