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/cn.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灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP