【发布时间】:2015-03-10 04:38:28
【问题描述】:
我已经评估了许多 REST API 的版本控制架构(标头、网址……)。到目前为止,最可靠的方法似乎是 url 选项:它适用于代理,并且不依赖于诸如 dates for versioning 之类的模糊模式。
现在,当我环顾四周时,每个使用基于 url 的方法的人似乎都使用v1、v2 等版本。没有人使用次要版本,甚至没有人使用像 semantic versioning 这样的架构。
这引发了一些问题:
- 什么时候增加 REST api 的版本号(当然,您对它的更新比五年一次的要多)?
- 如果您只是修复错误,您可能不会增加版本号,但是您如何区分两个版本?
- 如果您使用非常细粒度的方法,您最终会得到 很多 个需要并行托管的版本。你是怎么处理的?
换句话说:像 GitHub 这样的公司如何做到今天(2015 年)只有v3,而他们已经经营了 7 年?这是否意味着他们实际上只更改了两次 API?我简直不敢相信。
有什么提示吗?
【问题讨论】:
-
其实就是主版本号。我认为资源版本控制更为重要,但没有人谈论它。
-
您能否进一步解释一下您所说的资源版本控制是什么意思?
-
Ofc。当资源更改时,它必须更改版本号。通过更新客户端,它必须将本地存储的资源表示的版本号与请求一起发送,因此服务将知道它是否具有资源的新版本。人们称之为 etag,但如果你有一个资源或具有多个资源的响应,则不能发送多个 etag 标头(afaik),因此您必须在正文中发送版本号。
-
好的,已经清除了,谢谢:-)
标签: api rest versioning semantic-versioning