[請益] 怎麼處理API版本不同的問題?
我是後端工程師
要寫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都是只加不刪嗎
--
看樣子應該沒有做版號?
API endpoint 可以加版號上去啊 例如: /api/v1/xxx
app做強制更版機制,這樣就不用永遠向下相容
呃.. 但我們同一套程式新舊兩個app是分開的 因為改動非常大,所以pm說就是用一個新的殼去包,但考量到有些用戶沒有裝我們新的 app,所以就變成後端API要讓前端新舊版本都能用
※ 編輯: a88241050 (123.192.130.8 臺灣), 06/28/2021 19:03:52這app若不是很重要 用戶看到強更直接刪除
1. API 分版號 2. 給 Web 跟給 App 的API 拆成兩組
不知道你的語言,java的話有幾個API版本方式可以挑著
用,URL(上面大大提到的)、param、header、accept he
ader(produce)
靠傳參數處理,沒傳就走舊的邏輯,參數來源塞哪都行
最好還是把APP獨立用的接口分出來放,或加版號
重點是不是先交代一下這麼多舊版本必要存在的原因
第一要考驗db migration的功力 接著遲早某些版本要廢棄
如果全部都要相容,那為什麼要切版本?
你可能沒權力決定 如果是我 這樣混亂與混用太嚴重
我會直接管理面結合市場面 切一個大版本 分開出來
這需要你向上管理 新版本不向後支援 你也沒聽過edge
還要兼容 ie6
這也要說一下中國手機超多自建的瀏覽器,爛到流湯
可是有人客群在那邊,還是要支援,各種JS神奇錯誤
還有CSS問題,都接近無解的
API不可能無限向下支援 那只會造成往後的困擾
該捨棄的還是要捨棄
新舊API要分開阿..
這年頭還要讓菜鳥去麻煩這種困擾 我覺得你們公司人的問題
比較大
上面推文的方法己經普遍使用超過十年 運作起來符合也符合
你的需要 但你的前輩一直沒去調應該不是技術面問題
分兩組API吧
當初沒切清楚 後面沒人想管 今天就爛到流湯 真的覺
得很痛苦看你要不要提議翻新,被打槍就讓他去吧
切版本啊 看要切在route 還是你要用一個header
API一定可以分更細 有新功能就塞進舊的API只代表初始階
段就沒規劃好
一是api路徑帶版本,二是讀取user-agent判斷client版本
看看graphQL
適時整理一波就對了 不要到變成屎山
工具沒有完美的 很多都有局限性 有些甚至難用
弄到很好難道不是整理的人的功勞嗎 XD
只能等強制 APP 更版的時候把 API 切開了吧...
靠傳參?
或者用版本path隔開 舊的做成wrapper包新的api
34
[請益] 有人的公司也沒有提供API文件的嗎安安 小弟剛轉前端,進到一家接案公司寫網頁,工作大概9成都在接API, 但公司內部沒有提供api規格文件讓我參考, 導致每次我都要通靈, 不然就是纏著後端不放,13
[心得] 為什麼要學 GraphQL?來聊個簡單的議題? 『為什麼要學 GraphQL?』 部落格好讀版: 身為網站工程師,您不能不知道什麼是 GraphQL,這是一個前端跟後端溝通的 API Query 語法,大幅改善了前後端的合作模式,這篇會跟大家介紹為什麼麼要學 GraphQL, 以及整理出三大 GraphQL 優勢,讓大家了解跟傳統 Restful API 有什麼不同。當然不是20
Re: [討論] 前端比較痛苦還是後端本魯全端工程師 個人覺得後端比較痛苦,而且要會的不比前端少,可能還更多 因為所有的business model 都在後端,有些商業邏輯複雜到你會想死 前端所需要的功能,後端都要刻api出來(所有資料錯誤,80%都是後端吐的資料有誤) 而且前端的資料驗證,基本上後端為了安全性問題,全都要在再作一次13
[問卦] 前端工程師都在幹嘛最近想轉戰軟體業 大概了解軟體工程師可以簡單的分類成前後端 後端就是做各種應用之類的 串API 資料庫...感覺蠻多事的 但前端就小弟目前理解好像就做網頁? 阿一間公司真的有那麼多網頁可以做嗎? 有沒有業內人士為小弟解惑一下前端工程師的工作內容都是些什麼 感恩seafood --15
[討論] angular值得花時間下去學嗎?大家好 小弟最近在家進修 看了一下angular 本身已會angularjs 目前書看到264/801頁11
Re: [討論] 請大家聊聊 JavaScript的缺陷推 laputaflutin: 同意樓上,不過看到這次美國大選很多新聞網都拿 11/04 21:02 → laputaflutin: svelte來寫,感覺蠻有趣的,應該會拿來試試看 11/04 21:03 禁不住好奇心的我終究還是去看一下 Svelte, 原來它是個反 React、反 Vue、反前端在瀏覽器動態解析樣板的框架兼開發工具。 它讓你在開發時期能夠先以 js 程式碼定義資料,6
[討論] 客製化與一般化的角力是這樣的,小弟在一間不到20人的小公司擔任前端。 公司會有一些針對不同商家的客製化需求, 會去接各客戶自己的API。 最近發現的現象是,後端三不五時就會收到某某客戶不通了, 要釐清是客戶端問題或是公司端問題耗費不少時間。6
Re: [請益] 專精前端(或後端)vs全端工程師之前剛好有一份工作是全端,我不知道是否會趨勢化,但全端不一定是一人包前後的案子 事實上那是一份不小的專案,前後端各有數人在開發,甚至客戶 App 也會來串機器 簡單介紹一下那個專案架構 我方開發 web 前端,機器上跑大量 C 的程式,需要把既有 command line 東西視覺化 為了達成雲端操作,所以需要有一個全端來設計 API + SDK3
Re: [請益] 有人的公司也沒有提供API文件的嗎: : 安安 : : 小弟剛轉前端,進到一家接案公司寫網頁,工作大概9成都在接API, : 但公司內部沒有提供api規格文件讓我參考,- 靠背後端的api寫得不好啊 跟你講你api寫這樣他們不好call啊 可不可以幫他們改成這樣這樣就可以怎樣怎樣啦 然後你花時間改好了之後 過一個禮拜再來跟你講 還是改回去之前的版本好了