Javascript GetSomethingByOther()方法的REST样式是什么

Javascript GetSomethingByOther()方法的REST样式是什么,javascript,rest,web,nodes,Javascript,Rest,Web,Nodes,例如,我有一个Node.js REST API服务和一个resource-链接 要获取所有链接,我使用get/links 要提交新链接,我使用POST/links 要通过linkid获取一个链接,我使用get/links:id 每个链接都有一个标记数组,我需要一个REST样式的URI来按标记值获取链接。在这种情况下,REST样式的URI是什么?我认为应该是: GET/links/:id/tags 将返回与id为“:id”的链接相关的所有标记 如果您希望将标签作为单独的东西使用,您可以这样做:

例如,我有一个Node.js REST API服务和一个resource-
链接

  • 要获取所有链接,我使用
    get/links
  • 要提交新链接,我使用
    POST/links
  • 要通过linkid获取一个链接,我使用
    get/links:id
每个链接都有一个
标记数组
,我需要一个REST样式的URI来按标记值获取链接。在这种情况下,REST样式的URI是什么?

我认为应该是:

GET/links/:id/tags

将返回与id为“:id”的链接相关的所有标记

如果您希望将标签作为单独的东西使用,您可以这样做:

GET/tags
==>检索所有标签

GET/tags/:id
==>检索id为的标记

GET/tags/links/:id

此外,resftull并不严格,有时需要执行的资源或操作不适合该模式,您可以创建一个自定义方法:

GET/tags/GET for link id/:id
=>检索与链接相关的标记

这个例子是没有意义的,但是考虑到你有一个复杂的路线,有这么多的参数,如:


GET/tags?q=return&state=active&sort=date
如果这个请求重复了这么多次,对于您的api客户来说,最好有一个自定义别名,如
GET/tags/activeByDate

来获取某个标记的链接,您可以定义以下路径:

/tags/:tagID/links

以及获取某个链接的标签:


/links/:linkID/tags

这取决于具体情况。您可以执行类似于
/blah:{tagId}/
(这也是完全有效的URI)的操作。或者您可以执行
/links/?tagID={id}
等操作。我不喜欢前面提到的层次URI
/tags/{id}/links
,我认为平面URI更好。如果关系也有属性,则可以使用
/tag-link-relations/{relationshipId}
/tag-link-relations/tag:{tagId}/
/tag-link-relations/?tag={tagId}

从客户机的角度来看,URI结构并不重要,因为客户机遵循服务响应的超链接(也称为统一接口/HATEOAS约束)


off:几乎每天我们都会遇到这个问题,至少下次尝试搜索。

GET/tags/:tagID/links
。谢谢。你能给我一个答案让我结束这个问题吗?