微服務設計 - api版本控制


要描述了幾種API版本控制的方法。用戶可以查詢原始的API,或者添加定制的頭文件來接收特定的版本。如果應用程序收到一個重大修訂,將URI修改為V2。在進行迭代改進時,將創建與更改日期相一致的端點,並允許用戶將日期信息附加。然后,可以選擇保留舊版本的時間。而且在設計和版本化API時,您可以應用許多不同的理念。以下為譯文

API設計是一個“火辣熱門”的話題!關於API的最佳結構和版本的方法已經有很多優秀的文章介紹過了。在這篇文章中,我們將會深入研究不同的API設計之間有哪些沖突的地方,並在此基礎上提出我們的中立觀點,然后展示我們是怎樣使用FLY去驗證我們的中立觀點的。

API版本控制
雖然沒有一個統一的方式來設計API,但是有必要明確一下許多開發人員同意的幾個關鍵想法。一個結構良好的Web API應該是…

1:與客戶端保持持續的協議。協議可以保證一致性和穩定性;客戶端應該可以使用API,而不用擔心它會突然中斷或消失。

2:更改或升級后向后兼容。對新端點的舊查詢仍應產生預期的返回值。

3:RESTful(互聯網應用程序)。它應當可以識別HTTP的相關動作 :GET,PUT,POST,PATCH,DELETE等。

為了最好地實現這些理想的要求,在如何實現不同版本的API上就是仁者見仁,智者見智了。我們來看看它們中的三個…

URI版本控制

curl https://example.com/api/v2/lists/3 

 

通過解除URI中的版本號,客戶端可以訪問/v1/或/v2/API。它可讀,適應性強,可直接插入用戶瀏覽器。

Header版本控制

curl https://example.com/api/lists/3 \  
-H 'Accept: application/vnd.example.v2+json'


API URI保持不變。頭版本控制主要是通過自定義的Accept HTTP頭來完成的。核心URI仍然保持不變,但是能最好表示出API的資源,並且版本的更改將通過頭和響應類型傳遞。

沒有版本控制!

curl https://example.com/api/lists/3  


你需要什么版本?讓我們擴展我們的API以適應新的或調整的案例!放棄舊的框架,選擇建立和擴展。

中立觀點
每一個方法都是合理的,如果有好的設計思路的話,它們都可以呈現優異的API。 最終,我們希望它們都能實際運用起來,盡可能快地傳輸信息。一個沒有版本控制的綠色API可能會變得混亂,所以我們將遠離這一點。相反,我們將接受URI和HTTP標頭中的版本控制。作為一個轉折,我們將使用一個自定義的HTTP頭。

為了避免出現連我們自己都無法了解為什么請求會如此混亂且冗長的情況出現,讓我們更深入地了解一下為什么我們要使用這種方法。我們的方法是基於這樣一句格言:隨着太陽的升起,你的應用將會改變。

 

 

 

 

參考:https://blog.csdn.net/qiansg123/article/details/80130050


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM