【发布时间】:2015-02-19 10:23:10
【问题描述】:
基本上,我认为对 REST api 进行版本控制是个好主意。这是常识。通常你会遇到两种方法来做到这一点:
- 要么,您的网址中有版本标识符,例如
/api/v1/foo/bar, - 或者,您使用标题,例如
Accept: vnd.myco+v1。
到目前为止,一切都很好。这就是almost all big companies do。这两种方法各有利弊,很多此类内容都在here 进行了讨论。
现在我在 Twilio 看到了一种完全不同的方法,如 here 所述。他们使用日期:
在编译时,开发人员会在编译代码时包含应用程序的时间戳。该时间戳记在所有 HTTP 请求中。
当请求进入 Twilio 时,他们会进行查找。根据时间戳,他们确定创建此代码时有效的 API 并相应地进行路由。
这是一个非常聪明和有趣的方法,虽然我认为它有点复杂。例如,时间戳是编译时间还是 API 发布时的时间戳可能会让人混淆。
虽然我也觉得这很聪明,但我想知道这种方法的真正好处是什么。当然,这意味着您只需要记录 API 的一个版本(当前版本),但另一方面,这使得追踪已更改的内容变得更加困难。
有谁知道这种方法的优点是什么,那么为什么 Twilio 决定这样做?
请注意,我知道这个问题听起来好像答案主要是基于意见的,但我猜 Twilio 有一个很好的技术理由这样做。所以请不要以主要基于意见的方式结束这个问题,因为我希望答案不是。
【问题讨论】:
标签: api rest versioning twilio