V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xoxo419
V2EX  ›  程序员

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

  •  
  •   xoxo419 · Jul 12, 2017 · 6591 views
    This topic created in 3222 days ago, the information mentioned may be changed or developed.

    前因

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

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

    项目管理人要求

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

    怎么做

    方式 1

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

    方式 2

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

    想说点什么

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

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

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

    2.怎么做?
    系统设计时做到解耦、开闭原则。这样升级接口就不会有太多问题。
    hwwen
        22
    hwwen  
       Jul 13, 2017
    @shoaly 我们现在就是用 v1,v2 的方式,然后基本上过一两个月,旧版用户没了就可以关掉旧版的 api 了
    winfirm
        23
    winfirm  
       Jul 13, 2017
    你能保证旧版 app 无痛升级到使用新 api 的来吗?不能就应该保留。
    NaVient
        24
    NaVient  
       Jul 13, 2017
    用户几乎没有让你没有负担,更新吧
    xoxo419
        25
    xoxo419  
    OP
       Jul 13, 2017
    @hwwen v1 v2 是不是相关两份代码呢? 但这两份代码是由版本控制的?
    mingyun
        26
    mingyun  
       Jul 16, 2017
    @lzhr 居然还有 QQ 2008
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   971 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 154ms · UTC 20:08 · PVG 04:08 · LAX 13:08 · JFK 16:08
    ♥ Do have faith in what you're doing.