API 版本控制
Spring WebFlux 支援 API 版本控制。本節概述了支援和底層策略。
另請參閱以下相關內容:
在 RestClient、WebClient 和 HTTP 服務客戶端以及 WebTestClient 的測試中也提供了 API 版本控制的客戶端支援。
ApiVersionStrategy
這是 API 版本控制的核心策略,它包含了所有與版本控制相關的配置偏好。它執行以下操作:
-
透過 ApiVersionResolver 從請求中解析版本
-
使用 ApiVersionParser 將原始版本值解析為
Comparable<?> -
驗證請求版本
ApiVersionStrategy 幫助將請求對映到 @RequestMapping 控制器方法,並由 WebFlux 配置初始化。通常,應用程式不會直接與它互動。
ApiVersionResolver
此策略從請求中解析 API 版本。WebFlux 配置提供了內建選項,可從標頭、查詢引數、媒體型別引數或 URL 路徑中解析。您還可以使用自定義的 ApiVersionResolver。
路徑解析器總是從指定的路徑段中解析版本,否則會引發 InvalidApiVersionException,因此它不能讓位給其他解析器。 |
ApiVersionParser
此策略有助於將原始版本值解析為 Comparable<?>,這有助於比較、排序和選擇版本。預設情況下,內建的 SemanticApiVersionParser 將版本解析為 major、minor 和 patch 整數值。如果不存在,次要版本和補丁版本值將設定為 0。
驗證
如果請求版本不受支援,則會引發 InvalidApiVersionException,導致 400 響應。預設情況下,支援的版本列表是從帶註解的控制器對映中宣告的版本初始化的,但您可以透過 WebFlux 配置中的一個標誌將其關閉,並僅使用配置中明確配置的版本。
預設情況下,啟用 API 版本控制時需要版本,如果不存在,則會引發 MissingApiVersionException,導致 400 響應。您可以將其設定為可選,在這種情況下將使用最新版本。您還可以指定要使用的預設版本。
請求對映
ApiVersionStrategy 支援將請求對映到帶註解的控制器方法。有關更多詳細資訊,請參閱 API 版本。