• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xoxo419
V2EX  ›  程序员

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

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

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

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