关于接口-APP 开发了新版本要保留旧版本 api? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xoxo419
V2EX    程序员

关于接口-APP 开发了新版本要保留旧版本 api?

  •  
  •   xoxo419 2017-07-12 16:18:40 +08:00 6312 次点击
    这是一个创建于 3043 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前因

    对于 API 不太懂, 我们项目管理也不太懂技术.

    项目开发人员 接口 1 人、APP 开发 1 人 用户几乎没有 -_-!

    项目管理人要求

    新版的 APP 开发好,但项目管理人说, 怕旧版的用户不愿意更新. 所以要保留, 那么接口也要保证以的正常.

    怎么做

    方式 1

    1. 将原来的项目复制一份
    2. 增加一个 URL

    方式 2

    增加版本号, 但增加版本号好像也解决不了这个问题

    想说点什么

    你家公司, 开发了新版的 APP, 还要保留旧的?

    26 条回复    2017-07-16 09:48:54 +08:00
    shoaly
        1
    shoaly  
       2017-07-12 16:24:08 +08:00   1
    如果 api 简单, 就用参数 ?v=1 ?v=2 来区分, 写在同一个项目当中即可.
    如果 项目庞大 api 超级多, 就用 git 开多个分支 1.0 2.0 3.0, 分开部署到服务器, 这样你还可以在修改 2.0bug 的时候 同时维护 1.0 版本. 比如现在微软 win7 和 win10...
    icemanpro
        2
    icemanpro  
       2017-07-12 16:26:46 +08:00
    强行更新。
    shoaly
        3
    shoaly  
       2017-07-12 16:28:29 +08:00
    然后 到底应不应该保留 不同版本的 api, 取决于你的客户是不是刚需, 比如你是 12306 或者学校充值电费的 app, 那你可以直接强奸客户, 请时刻追新, 旧版本不再维护.
    如果你的客户是爸爸, 是需要公司花营销费用争取过来的, 比如支付宝, 微信... 这种升级之后旧版本立即失效的话, 那 v2 全球工单系统里面一定很好看... 吃瓜群众妥妥的围观
    artikle
        4
    artikle  
       2017-07-12 16:41:29 +08:00
    我们都是先发布接口,再发布 APP,而且除非业务变化大,否则不会强制更新。
    所以有需求变化时,先考虑能不能改造旧接口,不行就新增接口,比如以前接口 apiV1,现在变成 apiV2,这样可以兼容老版本,新版 APP 调用时就直接调用新接口,也不会有影响;
    artikle
        5
    artikle  
       2017-07-12 16:43:52 +08:00
    而且每次发布新版本一段时间后,要是没有强制更新的话,会去统计旧版本的各个版本的占比是多少,然后将没人用的版本接口废弃掉。强制更新的话,就会将所有旧接口废弃掉
    zjsxwc
        6
    zjsxwc  
       2017-07-12 16:46:01 +08:00
    现在手机 app 不都是在老用户自己都不知道的情况下自动把 app 更新了吗?
    ftexplore
        7
    ftexplore  
       2017-07-12 16:49:58 +08:00
    用版本号会有什么问题?
    paradoxs
        8
    paradoxs  
       2017-07-12 16:51:00 +08:00
    要保留旧版本的 安卓可以强奸用户
    ios 不行
    bombless
        9
    bombless  
       2017-07-12 17:08:39 +08:00
    需要考虑的东西挺多的
    只能说你要是不爱兼容老客户端的话有一万个不兼容的方法
    LancerXin
        10
    LancerXin  
       2017-07-12 17:34:51 +08:00
    如果用户几乎没有的话可以把老 api 淘汰掉.不然然而增加维护成本.
    rozbo
        11
    rozbo  
       2017-07-12 17:39:39 +08:00
    不就是一个 rewrite 就解决的事嘛。。。
    mooncakejs
        12
    mooncakejs  
       2017-07-12 17:41:06 +08:00
    你们做 api 不考虑兼容性的吗? 不兼容的 api 不改名的吗?
    polun
        13
    polun  
       2017-07-12 17:43:58 +08:00
    如果有 50 个版本,不敢想象 50 份代码。。。
    winglight2016
        14
    winglight2016  
       2017-07-12 18:14:18 +08:00
    最简单的办法就是,APP 启动时判断一下当前版本,接口不兼容当前版本就强制他升级
    Lax
        15
    Lax  
       2017-07-12 18:35:57 +08:00 via iPhone
    这道题里的“用户几乎没有”是关键条件,可以不保留。

    但是,你做业务总要定义好以后的升级规则吧,不能每次发布都要讨论一次
    lshero
        16
    lshero  
       2017-07-12 18:39:54 +08:00
    客户端有版本,API 没有版本嘛?
    qiayue
        17
    qiayue  
    PRO
       2017-07-12 18:46:06 +08:00
    rewrite 大法好
    freefcw
        18
    freefcw  
       2017-07-12 19:22:20 +08:00
    用户几乎没有,亮了~~
    66450146
        19
    66450146  
       2017-07-13 01:17:03 +08:00
    影响这么大的决定你们居然不是用数据支持而是拍脑袋决定的??
    lzhr
        20
    lzhr  
       2017-07-13 02:39:11 +08:00   1
    WhoMercy
        21
    WhoMercy  
       2017-07-13 08:05:48 +08:00 via Android
    1.要不要做?
    除非早期版本,如 A、B 测,正式运营是要保留的;

    2.怎么做?
    系统设计时做到解耦、开闭原则。这样升级接口就不会有太多问题。
    hwwen
        22
    hwwen  
       2017-07-13 09:48:35 +08:00
    @shoaly 我们现在就是用 v1,v2 的方式,然后基本上过一两个月,旧版用户没了就可以关掉旧版的 api 了
    winfirm
        23
    winfirm  
       2017-07-13 10:39:30 +08:00
    你能保证旧版 app 无痛升级到使用新 api 的来吗?不能就应该保留。
    NaVient
        24
    NaVient  
       2017-07-13 11:52:21 +08:00
    用户几乎没有让你没有负担,更新吧
    xoxo419
        25
    xoxo419  
    OP
       2017-07-13 16:43:29 +08:00
    @hwwen v1 v2 是不是相关两份代码呢? 但这两份代码是由版本控制的?
    mingyun
        26
    mingyun  
       2017-07-16 09:48:54 +08:00
    @lzhr 居然还有 QQ 2008
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     985 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 19:44 PVG 03:44 LAX 11:44 JFK 14:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86