Gol*_*den 14 versioning api rest semantic-versioning
我已经为REST apis(header,url,...)评估了许多版本控制模式.到目前为止,最可靠的方法似乎是url选项:它适用于代理,并且不依赖于模糊日期等模糊模式.
现在,当我环顾四周,大家谁使用基于URL的方法似乎使用的版本,如v1,v2等.没有人使用次要版本,甚至是语义版本控制等模式.
这提出了一些问题:
换句话说:像GitHub这样的公司,v3如今只有今天(2015年),现在已经有7年了?这是否意味着他们实际上只改变了他们的api两次?我简直不敢相信.
任何提示?
Nic*_*tel 28
主要版本号是Web服务所需的全部内容.因为您的消费者只关心向后不兼容的更改,并且(如果您正确地遵循语义版本控制),那么只有在发布新的主要版本时才会引入这些更改.
所有其他更改(包括新功能,错误修正,补丁等)对您的消费者来说应该是"安全的".这些新增功能不具有被你的消费者使用的,你可能不想继续运行包含错误X或Y的任何长于必要的未打补丁的版本.
使用URL中的完整版本号(或用于API版本控制的任何方法)实际上意味着,每当您对API进行更新/错误修复时,您的消费者都必须更新API的URL,并且他们会继续使用未修补的版本版本,直到他们这样做.
当然,这并不意味着你不能在内部使用语义版本控制!只需使用第一部分(主要版本)作为API的版本号.在您的URL /标头/其他版本控制系统中包含完整版本号是没有意义的.
因此,要回答您的问题:每次制作新版本时都会更新API,但只有在拥有新的主要版本时才会发布新的API版本.这样您只需要托管几个不同的版本(当然,您可以随着时间的推移弃用旧版本).
| 归档时间: |
|
| 查看次数: |
4902 次 |
| 最近记录: |