日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

API 版本控制的几种方式

發布時間:2025/4/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 API 版本控制的几种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

個人建議:用content type,即放在Header里面!比如加一個Version:1.4.3

?

這篇文章寫得很好,介紹了三種實現web api版本化的三種方式。我從評論里又收集到兩種方式,所以一共是5種:

方式一:利用URL

HTTP GET: https://haveibeenpwned.com/api/v2/breachedaccount/foo

方式二:利用用戶自定義的request header

HTTP GET: https://haveibeenpwned.com/api/breachedaccount/foo api-version: 2

方式三:利用content type

HTTP GET: https://haveibeenpwned.com/api/breachedaccount/foo Accept: application/vnd.haveibeenpwned.v2+json

方式四:利用content type

HTTP GET: https://haveibeenpwned.com/api/breachedaccount/foo Accept: application/vnd.haveibeenpwned+json; version=2.0

這個方式和方式三的小不同的地方是,把版本號分離出來了。

?

方式五:利用URL里的parameter

HTTP GET: https://haveibeenpwned.com/api/breachedaccount/foo?v=2

作者說他最喜歡第三種方式,因為

?

URL不用改變客戶端應該通過accept header來表明自己想接收的是什么樣的數據。 但作者很蛋疼地在他的網站上把前面三種方式都實現了,而且都支持。 https://haveibeenpwned.com/API/v2

我個人最喜歡的是第二種方式,因為這個用spring mvc實現最容易,也最簡潔。

因為只要在Controler上用@RequestMapping標明版本即可。不用再去各種匹配,各種識別。

如果是自己寫一個Annotation來識別的話,也要花些功夫,而且怎么無縫地轉發到原有的Spring mvc的配置也是個問題。

@Controller @RequestMapping(headers=apt-version=2) public class TestControllerV2 { }

另外這個網站列舉了很多國外的有名網站是如何實現web api版本控制的。

http://www.lexicalscope.com/blog/2012/03/12/how-are-rest-apis-versioned/

?

?

轉載于:https://www.cnblogs.com/duhuo/p/4617351.html

總結

以上是生活随笔為你收集整理的API 版本控制的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。