webapi 版本控制

2022-07-09 17:00:19 字數 2090 閱讀 3507

軟體開發過程中,常常會需要變更以前的介面,新增或刪除介面請求字段,介面字段校驗、甚至是變更請求/返回欄位名稱,如果強制要求所有客戶端跟著一起公升級代價太大。如果介面從一開始就考慮到了版本的設計,那麼做到平滑公升級就很容易了。

在路徑裡傳入版本號:

優點:可以做到大版本切換,路由下的所有介面同時更新

缺點:實際中往往不會涉及很多介面同時公升級,並且往往難以控制不同介面的版本(版本管理容易混亂)

通過引數傳入(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等不同值進乙...