1 設計原因
APP接口的開發不同於PC WEB的開發,APP會經常的版本迭代,不同版本的APP接口可以同時使用,老版本的APP和新版APP可以同時使用,為了便於維護和管理,就有必要設計好APP接口的管理策略。
2 數據庫及接口設計
數據庫包含字段:app版本號、更新內容、是否強制更新。
接口傳遞的參數:app版本號。
3 升級狀況
3.1 升級接口
AppStore不支持強制升級,后台必須提供升級接口。
3.2 渠道
App可能分多個渠道進行推廣,比如AppStore, 越獄版本等等。 那種渠道的版本升級很可能不同。
3.3 強制升級
版本升級中,一些版本需要強制升級到高版本。
比如, V3--->V4->>>V5--->V6。 V3可以選擇性的升級到V4,V4必須升級到V5,V5可以選擇性的升級到V6。
如果服務器的接口只提供最新版本的版本號和是否強制升級標識(由運營設置),然后由客戶端來比較是否要升級。 如果最新版本是V5, 那么是沒有什么問題的。
但是如果最新版本已經到V6,而某個客戶還停留在V3或者V4。那么如果不強制升級的話,可能就有很大的問題。
3.4 接口升級變化
3.4.1 接口變化
接口不可能一成不變,在不停迭代中,總會發生變化。接口的變化一般會有幾種:
數據的變化,比如增加了舊版本不支持的數據類型
參數的變化,比如新增了參數
接口的廢棄,不再使用該接口了
3.4.2 大小版本更新
大版本更新(之前接口需要大量修改時叫做大版本更新,之前接口實在用不了了才會進行大版本更新):大版本更新時,需要把接口所在文檔重新創建(相當於重新創建一個新的APP應用),使得其不同大版本之間接口相互獨立,更易維護。
小版本更新(對接口的小范圍修改及新增叫做小版本更新):小版本更新時,需要在每個修改的接口中進行版本號判斷,從而進行不同的分發。
4 實現方案
為了解決升級遇到的問題。一般的實現方案分為兩種。
每個接口有各自的版本,一般為接口添加個version的參數。比如將version加到header中。
整個接口系統有統一的版本,一般在URL中添加版本號,比如http://api.gateway/v1。
推薦使用第一種,第二種通過nginx路由需要多套生產環境。
————————————————
版權聲明:本文為CSDN博主「xixingzhe2」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xixingzhe2/article/details/82826160