[請益] 怎麼處理API版本不同的問題?

軟工

24120

我是後端工程師

要寫API給WEB跟APP前端

WEB跟APP有些API共用有些沒有

後端就只有一個STA版本

也就是說一個版本要同時滿足APP和WEB的需求

但我們PROD的上線時間又不是統一的

有可能今天APP要上一個新的功能

所以APP和後端都要更版

但因為WEB沒有要更新

所以後端API要同時滿足前端新舊版本的需求

講白一點就是"只能加key,不能刪key"

久而久之就會看到一隻API回了幾十個key

但實際上前端很多key都沒用到

那隻API就會變得很雜

我們現在每個Vo動不動就2,30個key

有時看程式會看得很亂

不知道大家都怎麼處理這種問題?

資深前輩是跟我說改API都一定要向前相容

因為你不能保證用戶是否用最新版本

所以key都是只加不刪嗎

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.158.181 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1624876117.A.086.html
bill02051樓看樣子應該沒有做版號? 06/28 18:36
codepo2樓API endpoint 可以加版號上去啊 例如: /api/v1/xxx 06/28 18:40
abcf3樓app做強制更版機制,這樣就不用永遠向下相容 06/28 18:56
呃.. 但我們同一套程式新舊兩個app是分開的 因為改動非常大,所以pm說就是用一個新的殼去包,但考量到有些用戶沒有裝我們新的 app,所以就變成後端API要讓前端新舊版本都能用
MoonCode4樓這app若不是很重要 用戶看到強更直接刪除 06/28 19:02
fantasystar5樓1. API 分版號 2. 給 Web 跟給 App 的API 拆成兩組 06/28 19:29
BlacksPig6樓不知道你的語言,java的話有幾個API版本方式可以挑著 06/28 19:39
BlacksPig7樓用,URL(上面大大提到的)、param、header、accept he 06/28 19:39
BlacksPig8樓ader(produce) 06/28 19:39
jack02049樓靠傳參數處理,沒傳就走舊的邏輯,參數來源塞哪都行 06/28 20:34
jack020410樓最好還是把APP獨立用的接口分出來放,或加版號 06/28 20:38
kvjo11樓重點是不是先交代一下這麼多舊版本必要存在的原因 06/28 21:07
smalldra12樓第一要考驗db migration的功力 接著遲早某些版本要廢棄 06/28 21:08
DCTmaybe13樓如果全部都要相容,那為什麼要切版本? 06/28 21:11
kvjo14樓你可能沒權力決定 如果是我 這樣混亂與混用太嚴重 06/28 21:18
kvjo15樓我會直接管理面結合市場面 切一個大版本 分開出來 06/28 21:18
kvjo16樓這需要你向上管理 新版本不向後支援 你也沒聽過edge 06/28 21:19
kvjo17樓還要兼容 ie6 06/28 21:19
jack020418樓這也要說一下中國手機超多自建的瀏覽器,爛到流湯 06/28 21:22
jack020419樓可是有人客群在那邊,還是要支援,各種JS神奇錯誤 06/28 21:22
jack020420樓還有CSS問題,都接近無解的 06/28 21:23
bill020521樓API不可能無限向下支援 那只會造成往後的困擾 06/28 22:27
bill020522樓該捨棄的還是要捨棄 06/28 22:28
hakama9923樓新舊API要分開阿.. 06/28 22:59
ldkrsi24樓這年頭還要讓菜鳥去麻煩這種困擾 我覺得你們公司人的問題 06/28 23:27
ldkrsi25樓比較大 06/28 23:27
ldkrsi26樓上面推文的方法己經普遍使用超過十年 運作起來符合也符合 06/28 23:29
ldkrsi27樓你的需要 但你的前輩一直沒去調應該不是技術面問題 06/28 23:29
viper970928樓分兩組API吧 06/29 00:15
WaterLengend29樓當初沒切清楚 後面沒人想管 今天就爛到流湯 真的覺 06/29 01:34
WaterLengend30樓得很痛苦看你要不要提議翻新,被打槍就讓他去吧 06/29 01:34
更多請益
[請益] 職涯請益
[請益] offer 請益
[請益] 32歲碼農的未來
[請益] 成為 AI 工程師的進修方向(代po)
[請益] 關於LINE Bank的內部如何?
[請益] Offer請益(聯發科/群暉/Ring)
[請益] 面試能力請益
[請益] 金融offer請教