api接口在修改之后变更了返回的数据结构怎么办?

情况是这样的:
我在修改了一个功能接口后,连同返回的数据结构都变了
然后
之前的接口还在线上用着
我不可能直接修改原接口,不然之前的功能就会出问题
那么我只能再新建一个接口用于修改后的功能
但是这种情况如果多了会不会造成大量废弃的接口同时在生产环境
如何更好地区分升级前和升级后的接口?

阅读 3k
3 个回答
但是这种情况如果多了会不会造成大量废弃的接口同时在生产环境

首先这里其实是3件事,一件叫兼容以前的版本,一件叫新增一个功能,一件叫废弃之前的版本。

  1. 如果你要兼容,那不叫废弃的接口,当然这里不符合题主需求。
  2. 楼主这里其实是新增一个功能(尽管他跟原有的功能可能很相似),直接新加就行了。
  3. 而如果你要废弃,则可以屏蔽掉旧版本代码(一般是几次迭代之后,有足够的警告说明你要废弃此接口,而通常还不是很好用)

这是比较没有办法的事情。主要写好文档,每个系统版本的文档里写清楚接口的支持和废弃。

借助外部传送的参数来判断呢? 加个参数,比如说是版本号之类的,这样是否能解决,如果没有这个参数,证明是之前的逻辑,如果添加了这个参数,根据版本号来走不同的逻辑 这样实现是否可以,不过我们这边也是如此的,也是写个新的接口来实现- -

可以用一个版本号来做区分,比如V1、V2这样就 不会起名困难,也比较符合你现在的情况

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题