getSomethingByAnother() 方法的 REST 风格是什么
What is the REST style for getSomethingByAnother() method
我有一个 Node.js REST API 服务,我有一个资源 - 例如 Link
。
- 要获得所有 link,我使用
GET /links
- 要提交新的 link 我使用
POST /links
- 要通过 linkid 获得一个 link 我使用
GET /links:id
每个 link 都有一个 Tags
数组,我需要一个 REST 样式的 URI 来按标签值获取 link。在这种情况下,REST 样式的 URI 是什么?
我觉得应该是:
GET /links/:id/tags
那应该 return 与 ID 为“:id”的 link 相关的所有标签
如果您喜欢将标签作为单独的东西使用,您可以这样做:
GET /tags
==> 检索所有标签。
GET /tags/:id
==> 检索 ID 为 ..
的标签
GET /tags/links/:id
此外 resftull 并不严格,有时您需要执行的资源或操作不适合该架构,您可以创建自定义方法:
GET /tags/get-for-link-id/:id
=> 检索与 link
相关的标签
该示例毫无意义,但考虑到您的路线很复杂,参数太多,例如:
GET /tags?q=return&state=active&sort=date
如果此请求重复了很多次,对于您的 api 客户来说,拥有一个像 GET /tags/activeByDate
这样的自定义别名会很愉快
要获取某个标签的 links,您可以定义以下路由:
/tags/:tagID/links
并获取某个 link 的标签:
/links/:linkID/tags
视情况而定。 TYou can do something like /blah:{tagId}/
(这也是完全有效的 URI)。或者你可以做 /links/?tagID={id}
等等。我不喜欢已经提到的分层 URI /tags/{id}/links
,我认为扁平 URI 更好。如果关系也有属性,那么您可以使用 /tag-link-relationships/{relationshipId}
或 /tag-link-relationships/tag:{tagId}/
或 /tag-link-relationships/?tag={tagId}
等...
从客户端的角度来看,URI 结构并不重要,因为客户端遵循服务响应的超链接(也称为统一接口/HATEOAS 约束)。
off: 几乎每天都有这个问题,至少下次搜索一下。
我有一个 Node.js REST API 服务,我有一个资源 - 例如 Link
。
- 要获得所有 link,我使用
GET /links
- 要提交新的 link 我使用
POST /links
- 要通过 linkid 获得一个 link 我使用
GET /links:id
每个 link 都有一个 Tags
数组,我需要一个 REST 样式的 URI 来按标签值获取 link。在这种情况下,REST 样式的 URI 是什么?
我觉得应该是:
GET /links/:id/tags
那应该 return 与 ID 为“:id”的 link 相关的所有标签
如果您喜欢将标签作为单独的东西使用,您可以这样做:
GET /tags
==> 检索所有标签。
GET /tags/:id
==> 检索 ID 为 ..
GET /tags/links/:id
此外 resftull 并不严格,有时您需要执行的资源或操作不适合该架构,您可以创建自定义方法:
GET /tags/get-for-link-id/:id
=> 检索与 link
该示例毫无意义,但考虑到您的路线很复杂,参数太多,例如:
GET /tags?q=return&state=active&sort=date
如果此请求重复了很多次,对于您的 api 客户来说,拥有一个像 GET /tags/activeByDate
要获取某个标签的 links,您可以定义以下路由:
/tags/:tagID/links
并获取某个 link 的标签:
/links/:linkID/tags
视情况而定。 TYou can do something like /blah:{tagId}/
(这也是完全有效的 URI)。或者你可以做 /links/?tagID={id}
等等。我不喜欢已经提到的分层 URI /tags/{id}/links
,我认为扁平 URI 更好。如果关系也有属性,那么您可以使用 /tag-link-relationships/{relationshipId}
或 /tag-link-relationships/tag:{tagId}/
或 /tag-link-relationships/?tag={tagId}
等...
从客户端的角度来看,URI 结构并不重要,因为客户端遵循服务响应的超链接(也称为统一接口/HATEOAS 约束)。
off: 几乎每天都有这个问题,至少下次搜索一下。