我正在尝试找到有关最佳和最常见的RESTful网址操作的一些信息.
例如,您使用什么URL来显示项目的详细信息,编辑项目,更新等.
/question/show/<whatever>
/question/edit/<whatever>
/question/update/<whatever> (this is the post back url)
/question/list (lists the questions)
Run Code Online (Sandbox Code Playgroud)
哼.感谢任何人的帮助:)
(请原谅问题标题;很难总结这个问题。)
在 Facebook 上,你的like东西。在推特上,你们这些follow人。在 GitHub 上,您还可以看到follow人员、star存储库和要点。
所有这些情况都非常相似:这些连接是轻量级的,本身并不是真正的“资源”。例如,这三个 API 都没有公开此类连接的公共 ID。
这就提出了一个问题:公开用于创建/查询/删除这些连接的 API 的“最佳”(就 REST 而言)方法是什么?
Facebook 的做法 [ 1 ]:
GET /:id/likes查询某个对象的喜欢程度(更准确地说,喜欢该对象的用户)
POST /:id/likes喜欢某事(代表经过授权的用户;不需要请求正文)
DELETE /:id/likes不喜欢某些东西(代表经过授权的用户)
查询和创建是有意义的,但DELETE有点“非 RESTful”,因为您实际上并没有删除/:id/likes资源(喜欢该对象的用户数组)。
这种差异在另一种情况下也表现出来[ 2 ]:
GET /me/likes/:id询问你是否喜欢某事因此,查询连接是查询与创建或删除它完全不同的资源。
GitHub倾向于/me/likes/:id以下用户和明星存储库的风格[ 3 ]:
(请注意,GitHub/user代表经过身份验证的用户,如 Facebook 的/me。)
GET /user/starred/:owner/:repo用于查询您是否有一个已加星标的存储库(返回 204 或 404,两者都没有正文)
PUT /user/starred/:owner/:repo用于为回购加注星标(请求中不需要正文)
DELETE /user/starred/:owner/:repo用于取消仓库星标
这更加一致,但不幸的是,这将个体“明星”与群体分开: …