当URL中有一个API版本时,我总是看到讨论的内容。
我是说看看这三个网址。
http://host/api/customers/1
http://host/v1/api/customers/1
http://host/v2/api/customers/1
在我读到的每一篇博文中,他们都在谈论指向第一个URL的位置。首先,我会禁用那个URL,它能带来什么好处?即使我有那个URL,我也会很明显地把它指向最古老的支持版本,并且希望用它来代替它!(因为我拥有这个URL的唯一原因是,在发布之前,我会忘记可能有版本)
这不仅是因为我看不出将它绑定到最新API的意义,而且它是最糟糕的事情,甚至是愚蠢的!
你对此有何看法?为什么人们都会写这个原谅我愚蠢的URL?
发布于 2017-01-11 13:19:29
有些人在API的第一个版本中使用第一个URL格式,因为他们当时没有考虑如何管理版本控制(或者等到需要第二个版本时才做出决定)。其他人之所以使用它,是因为他们不使用URL来确定要使用的版本,或者允许其他方法来告诉服务器正在使用哪个版本(标头等)。
最终,在发布API时,最重要的是确保它是一致的、逻辑的和文档化的。
我同意您的观点,当您提供API版本标识符可见的URL时,无版本URL几乎没有值(除非API的版本1是如何使用的),并且可能会使API使用者感到困惑。如果你能链接到一些你读过的主张使用它的博客文章,那就太好了,因为我个人还没见过它们。
如果要提供第一个URL,并设置适当的版本检测机制(使用X-API-Version之类的专用标头或使用专用MIME类型),则其他两个URL可能最好不存在。
(应该注意的是,使用X-API-Version并不能解决问题,而只是转移问题;因为如果没有设置标头,那么您的API应该如何运行呢?无论它是以v1的形式运行,还是返回一个错误消息,告诉API使用者提供版本,第一种URL格式可能也是如此。)
关于这个主题的有趣文章:您的API版本控制是错误的,这就是为什么我决定做3种不同的错误方式(特洛伊亨特)
https://softwareengineering.stackexchange.com/questions/339963
复制相似问题