为 app 提供服务的 server 端接口,如何做良好的设计,支持不断新增新的功能又能兼顾老的接口能继续正常使用?

2014-12-02 23:51:26 +08:00
 tottichenzp
随着app功能不断的新增,server端接口也会不停的进行修改、增加,老的接口可能在新的版本中不再使用,但是由于有历史版本的app用户的存在,不能直接修改或者删除老的server端接口,有没有一种好的方式来进行server端接口的版本控制。目前我们的做法是,若是改动不大的server端接口,直接在原有接口上进行扩展修改,若是改动较大,则会使用一个新的接口。
4777 次点击
所在节点    分享发现
6 条回复
newtonisaac
2014-12-03 07:53:41 +08:00
V1
V2
tottichenzp
2014-12-03 10:33:00 +08:00
@newtonisaac 不知道有没有通用一点的设计,我们在server端增加类似功能的接口时,也是有标注上版本号,但是总是感觉不自在
semicircle21
2014-12-03 11:54:22 +08:00
你们是使用 json 还是 二进制的格式? 如果用 json 的话, 尽量扩展就行了. 这应该还是相对容易的.
其他的情况, V1,V2 是正解, 而且, 一般都是只新增不删改的, 你看 MS 的 ihtmldocument2,3,4,5,6..
这就是所谓的历史包袱了.
tottichenzp
2014-12-03 13:06:57 +08:00
@semicircle21 用的是json格式 字段扩展确实是相对容易的,但是随着版本的更新,会有一些重复代码的存在,同时又会有一些不在新版本中使用,但是还依旧在老版本中使用的接口。
newtonisaac
2014-12-03 13:24:11 +08:00
jeffreyning
2016-05-25 21:09:16 +08:00
移动端 app 后台接口 api 需要分版本同时提出给使用方。
如果每个接口都重新改类名将造成大量重复代码。
使用 NHVersion 类库可以解决代码重复问题,
同时在没有完全一致的版本映射时,
还可以根据提供的版本号找到最近似的版本进行调用。
详细说明访问 http://www.jeffreyningsoftware.com/product-nhversion-c.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/151090

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX