【发布时间】:2025-12-05 03:30:01
【问题描述】:
我正在研究 RESTful 版本控制 API 的各种方法,其中有三个主要的竞争者。我相信我已经决定使用X-API-Version。撇开争论不谈,反对使用该标头和自定义标头的论据之一是您无法控制标头何时由代理服务器操作。我很好奇有哪些现实世界的例子,什么时候发生在整个互联网上,什么时候可能用于 Intranet 或服务器集群,或者什么时候可能发生在任何其他情况下。
【问题讨论】:
-
我不确定我是否愿意依赖人们对“一般情况”的看法。代理可以对您的标头做任何它喜欢的事情 - 我不知道任何经验法则或公认的行为。你的版本控制是为了什么?人们可以选择不同的版本吗?还是标题只是为了提供信息?如果它用于选择版本,我会亲自将版本号作为 URL 的一部分。
-
我在其他地方听到过意见——我找不到任何真实世界中实际删除或更改标头的示例(除了旨在由代理操纵的标头,例如
Via)。 -
不相关,但使用标头对 API 进行版本控制并不是一个好习惯。 mnot.net/blog/2012/07/11/header_versioning
-
@Mark 是的,我读过那个。其他 S.O. 上有很好的讨论和链接。问题。但我不明白你的论点,即必须使用“Vary”是一种不好的代码气味。我恭敬地拒绝您的结论,即使用标头进行版本控制是不好的;)
标签: api http rest language-agnostic rfc2616