我们在做手机应用时,随着手机客户端的不断更新,api 服务端也需要不断更新,但是并不能保证每个用户都会及时更新他的 app 客户端。所以,服务端就存在同时需要兼顾不同旧版本 api 的需求。 简单说,就是如果我们的 API 有 V1, V2, V3, ... 不同版本,有什么 best practices 能让所有这些版本同时都 work?
我想肯定不会事一个 version,一个 instance,所有东西放在一个 instance 里,新版本又很容易影响旧版本。希望有经验的同学不吝赐教。
放在不同的 scope 下,比如:/v1/posts.json, /v2/posts.json 你代码是分离的,所以当然是可以同时工作的,互不影响...
你新版本就让新客户端请求 /v2. 老的应该还是走的 v1... 如果老的没设,你默认设置为 走 v1...
或者可以看看 咱老东家的 https://github.com/intridea/grape :)
http://railscasts.com/episodes/350-rest-api-versioning 具体实现可以参考这个视频,内容如 @poshboytl 所说
好贴
压力大的话在架构调整时,物理上也可以考虑分离,比如所有老版本用一组服务器,新版本用一组服务器,保证不会相互干扰
@poshboytl @saberma 谢谢回复