API接口版本控制


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


免責聲明!

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



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