Soft_Job 板


LINE

我是後端工程師 要寫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://webptt.com/m.aspx?n=bbs/Soft_Job/M.1624876117.A.086.html
1F:→ bill0205: 看樣子應該沒有做版號?06/28 18:36
2F:推 codepo: API endpoint 可以加版號上去啊 例如: /api/v1/xxx06/28 18:40
3F:推 abcf: app做強制更版機制,這樣就不用永遠向下相容06/28 18:56
呃.. 但我們同一套程式新舊兩個app是分開的 因為改動非常大,所以pm說就是用一個新的殼去包,但考量到有些用戶沒有裝我們新的 app,所以就變成後端API要讓前端新舊版本都能用 ※ 編輯: a88241050 (123.192.130.8 臺灣), 06/28/2021 19:03:52
4F:→ MoonCode: 這app若不是很重要 用戶看到強更直接刪除 06/28 19:02
5F:→ fantasystar: 1. API 分版號 2. 給 Web 跟給 App 的API 拆成兩組 06/28 19:29
6F:推 BlacksPig: 不知道你的語言,java的話有幾個API版本方式可以挑著 06/28 19:39
7F:→ BlacksPig: 用,URL(上面大大提到的)、param、header、accept he 06/28 19:39
8F:→ BlacksPig: ader(produce) 06/28 19:39
9F:推 jack0204: 靠傳參數處理,沒傳就走舊的邏輯,參數來源塞哪都行 06/28 20:34
10F:推 jack0204: 最好還是把APP獨立用的接口分出來放,或加版號 06/28 20:38
11F:→ kvjo: 重點是不是先交代一下這麼多舊版本必要存在的原因 06/28 21:07
12F:→ smalldra: 第一要考驗db migration的功力 接著遲早某些版本要廢棄 06/28 21:08
13F:推 DCTmaybe: 如果全部都要相容,那為什麼要切版本? 06/28 21:11
14F:→ kvjo: 你可能沒權力決定 如果是我 這樣混亂與混用太嚴重 06/28 21:18
15F:→ kvjo: 我會直接管理面結合市場面 切一個大版本 分開出來 06/28 21:18
16F:→ kvjo: 這需要你向上管理 新版本不向後支援 你也沒聽過edge 06/28 21:19
17F:→ kvjo: 還要兼容 ie6 06/28 21:19
18F:推 jack0204: 這也要說一下中國手機超多自建的瀏覽器,爛到流湯 06/28 21:22
19F:→ jack0204: 可是有人客群在那邊,還是要支援,各種JS神奇錯誤 06/28 21:22
20F:→ jack0204: 還有CSS問題,都接近無解的 06/28 21:23
21F:→ bill0205: API不可能無限向下支援 那只會造成往後的困擾 06/28 22:27
22F:→ bill0205: 該捨棄的還是要捨棄 06/28 22:28
23F:→ hakama99: 新舊API要分開阿.. 06/28 22:59
24F:推 ldkrsi: 這年頭還要讓菜鳥去麻煩這種困擾 我覺得你們公司人的問題 06/28 23:27
25F:→ ldkrsi: 比較大 06/28 23:27
26F:→ ldkrsi: 上面推文的方法己經普遍使用超過十年 運作起來符合也符合 06/28 23:29
27F:→ ldkrsi: 你的需要 但你的前輩一直沒去調應該不是技術面問題 06/28 23:29
28F:推 viper9709: 分兩組API吧 06/29 00:15
29F:推 WaterLengend: 當初沒切清楚 後面沒人想管 今天就爛到流湯 真的覺 06/29 01:34
30F:→ WaterLengend: 得很痛苦看你要不要提議翻新,被打槍就讓他去吧 06/29 01:34
31F:推 wxywxywxy: 切版本啊 看要切在route 還是你要用一個header 06/29 09:16
32F:推 jason4571: API一定可以分更細 有新功能就塞進舊的API只代表初始階 06/29 12:44
33F:→ jason4571: 段就沒規劃好 06/29 12:44
34F:推 jinmin88: 一是api路徑帶版本,二是讀取user-agent判斷client版本 06/29 13:12
35F:→ hhsu16: 看看graphQL 06/29 18:59
36F:→ superpandal: 適時整理一波就對了 不要到變成屎山 06/29 23:20
37F:→ superpandal: 工具沒有完美的 很多都有局限性 有些甚至難用 06/29 23:24
38F:→ superpandal: 弄到很好難道不是整理的人的功勞嗎 XD 06/29 23:24
39F:→ jim7434: 只能等強制 APP 更版的時候把 API 切開了吧... 07/01 20:56
40F:→ shooter555: 靠傳參? 07/02 13:54
41F:→ shooter555: 或者用版本path隔開 舊的做成wrapper包新的api 07/02 13:57







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP