Mar*_*kLi 9 rest resources uri naming-conventions
REST api的多种形式更自然,更常用,例如/api/users或api/users/123.
但是对于某些资源来说并不自然,例如:
/api/login - 准确登录一个用户/api/profile - 获取已登录用户的个人资料此资源永远不会用于我的应用程序中的一个对象/模型.
另一方面,我读到在资源名称中混合复数和单数形式并不是一种好的做法(http://pages.apigee.com/web-api-design-ebook.html).
所以我考虑做什么:
/api/logins)/api/login或者/api/profile总是与一个对象/模型一起使用.什么是更好的方法?
定义RESTful API没有严格的指导原则,但我最常阅读的是常识应占优势.
因此,选项3:
为了不一致并且几乎所有资源都使用复数期望一些特殊资源,比如/ api/login或/ api/profile,它们总是与一个对象/模型一起使用.
是最合乎逻辑的.当你想到"我需要资源X,这个网址会是什么样子"时,你应该总能猜出网址?
我并不是说我更喜欢复数,但如果你使用复数,你可以这样调和你的特殊单数:
GET /api/forms/login是 HTML 登录表单。使用这个视角,login是一组表单中只有一个表单的 ID。
POST /api/forms/login 是提交登录表单的地方。
GET /api/users/{id}/profile 检索指定用户的配置文件。这适用于很多情况,但不适用于匿名网站,即使在查看他们的个人资料时,用户的身份也应该保持隐藏,这可能会遗漏他们的用户 ID 和真实姓名。
GET /api/profiles/{id} 将配置文件实体与用户 ID 分离,并适用于匿名站点。
或者,您可以像在您的帖子中那样写GET /api/users/current/profile或GET /api/sessions/current/profile省略特定 ID,因为服务器将回复与当前用户相关的内容。