據我所知,我們可以出于某種原因對我們的 API 進行版本控制,例如當前 API 需要進行更改,但我們還需要在其以前的狀態下使用它。
為此,我通常在構建專案時從一開始就使用以下方法:
@RestController
@RequestMapping("/api/v1")
public class AuthController {
}
但是,當我嘗試添加本頁中提到的另一個(在同一個控制器檔案中)時,我得到了 Duplicate class 錯誤。但是,我不能將另一個類檔案添加到同一個包中。
那么,您能否就以下問題向我澄清一下?
使用 API 版本控制的目的是什么?我一開始給出的想法是其中一個原因嗎?
如何為我的端點使用 API 版本控制?另一個 Spring Boot 檔案是否需要任何額外的實作?
uj5u.com熱心網友回復:
但是,我不能將另一個類檔案添加到同一個包中。
這里明顯的解決方法是
@RestController
@RequestMapping("/api/") <----------
public class AuthController {
GetMapping("v1/users")
public List<String> getAllV1() {
...
}
GetMapping("v2/users")
public List<String> getAllV2() {
...
}
..relative you can have all methods exposed in the same class for both v1 and v2 implementations
}
使用 API 版本控制的目的是什么
這樣外部人員就能夠知道您的 API 何時被修改,以便知道他們可能需要對其使用者代碼進行更改。您可能現在才關閉v1并提供,v2這意味著他們需要適應新的實施才能繼續運作。或者您可以同時提供兩者v1,v2因此它們不需要立即適應以繼續運行,但可以在未來開始努力趕上您的新版本。
如何為我的端點使用 API 版本控制?另一個 Spring Boot 檔案是否需要任何額外的實作?
要么你有一個特定的,當你發布一個AuthController影響這個控制器的新版本時,你將映射從更改v1為不同的網址。如果由于您提到的約束而不是這種情況,那么您可以執行我在此答案中撰寫的解決方法,以便提供來自同一檔案的兩個版本。但這不是經常使用的最佳實踐。v2v1v2However, I cannot add another class file to the same package.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/527495.html
