语义化版本管理(http://semver.org/)就是一种能够支持这种方式的规格说明。语义化版本管理的每一个版本号都遵循这样的格式:MAJOR.MINOR.PATCH。其中 MAJOR 的改变意味着其中包含向后不兼容的修改;MINOR 的改变意味着有新功能的增加,但应该是向后兼容的;最后,PATCH 的改变代表对已有功能的缺陷修复
4.13.4 不同的接口共存
我用过的一种比较成功的方法是,在同一个服务上使新接口和老接口同时存在
这其实就是一个扩展 / 收缩模式的实例,它允许我们对破坏性修改进行平滑的过度。首先扩张服务的能力,对新老两种方式都进行支持。然后等到老的消费者都采用了新的方式,再通过收缩 API 去掉旧的功能