軟體開發過程中,常常會需要變更以前的介面,新增或刪除介面請求字段,介面字段校驗、甚至是變更請求/返回欄位名稱,如果強制要求所有客戶端跟著一起公升級代價太大。如果介面從一開始就考慮到了版本的設計,那麼做到平滑公升級就很容易了。
在路徑裡傳入版本號:
優點:可以做到大版本切換,路由下的所有介面同時更新
缺點:實際中往往不會涉及很多介面同時公升級,並且往往難以控制不同介面的版本(版本管理容易混亂)
通過引數傳入(post 或 get)
可以單獨控制,注意version不存在和亂傳值的處理
new getuserv2response(userid, "小明", "version 2");
}header設定在controller或action上都可以,設定在controller上,控制所有action的版本,設定在action上,單獨控制乙個action的版本
@restcontroller對應版本:public
class
apiversionheaderdemocontroller
}
不支援的版本:
利用自定義請求的content-type來控制版本:
/*** v1 是api版本**
* v1 :為api版本**
* v2 :為api版本**
註解來實現:spingmvc框架實現restfull介面的版本控制
參考:webapi-version-control
WebApi路由及版本控制
取路由相應值 匹配相應路由 從route中讀取命名空間名稱和控制器名稱 獲取版本號 var version getversionfromacceptheaderversion request var versionedcontrollername string concat controllerna...
關於Web API 版本控制的一些想法
一 版本數量 出於對維護成本考慮,api版本數量最好有個限制,比如只保留最新的5個api版本 二 版本有效期 針對每個api版本,設定乙個使用期限標識。比如最新的api版本已經更新到了v9,但是有的使用者還在使用v1的老版本,這個時候需要某種機制來強制公升級使用者版本。三 同乙個版本的相容性問題 有...
Beetlex服務框架之Webapi版本訪問控制
在應用服務中api更新是很普遍的事情,為了服務良好地運作很多時候需要新舊版本同時相容 為了應對這一系列的需求fasthttpapi在新版中強化了url重寫機制來支援api訪問版本控制,由原來固定的重寫規則調整成支援動態資料的重寫規則,主要支援網域名稱,header和querystring等不同值進乙...