Javascript GetSomethingByOther()方法的REST样式是什么
例如,我有一个Node.js REST API服务和一个resource-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”的链接相关的所有标记 如果您希望将标签作为单独的东西使用,您可以这样做:
链接
- 要获取所有链接,我使用
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
。谢谢。你能给我一个答案让我结束这个问题吗?