【发布时间】:2013-12-21 07:54:45
【问题描述】:
我有一个关于 REST url 设计的问题。我在这里找到了一些相关的帖子:Different RESTful representations of the same resource 和这里:RESTful url to GET resource by different fields,但是对于最佳实践是什么以及为什么,这些回复并不是很清楚。这是一个例子。
我有代表“用户”资源的 REST url。我可以使用 id 或电子邮件地址获取用户,但两者的 URL 表示形式保持不变。浏览了很多博客和书籍,我发现人们一直在以许多不同的方式这样做。例如
在一本书和stackoverflow上的某个地方阅读这种做法(我似乎无法再次找到链接)
GET /users/id={id}
GET /users/email={email}
在很多博客上阅读这种做法
GET /users/{id}
GET /users/email/{email}
查询参数通常用于过滤 url 表示的资源的结果,但我也看到了这种做法
GET /users?id={id}
GET /users?email={email}
我的问题是,在所有这些做法中,哪一种对使用 API 的开发人员最有意义,为什么?我相信在 REST url 设计和命名约定方面没有一成不变的规则,但我只是想知道我应该采取哪种方式来帮助开发人员更好地理解 api。
感谢所有帮助!
【问题讨论】:
-
我知道这有点旧,但在寻找类似的资源时,我偶然发现了这个问题和您正在寻找的问题。我相信是这个stackoverflow.com/a/9743414/468327
标签: rest url jax-rs url-scheme url-pattern