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