首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST设计:资源谓词或相关集合?

REST设计:资源谓词或相关集合?
EN

Stack Overflow用户
提问于 2014-12-01 21:35:26
回答 1查看 42关注 0票数 0

一种方法是,您应该保持资源URL简单。我们在HTTP中有动词,资源名作为路径。所以我们可以:

代码语言:javascript
复制
GET /books/12

如果我们想获取相关的集合,我们可以这样做:

代码语言:javascript
复制
GET /books/12/pages

另一方面,有一种做法是使用所谓的资源动词,在那里您可以微调动词操作:

代码语言:javascript
复制
POST /books/12/bookmark

我不会在API中使用这两种方法。我倾向于认为第一种方法更正确(即不允许在资源名称中使用动词),并对第二种方法进行建模,我们可以使用不同的实体,例如:

代码语言:javascript
复制
POST /book-bookmarks/12/

或者不同的身份:

代码语言:javascript
复制
POST /bookmarks/12+book/

我知道这方面没有真正的答案,但哪一个更好呢?我希望看到一些人的一些答案,实际上是通过这样的设计决策。

EN

回答 1

Stack Overflow用户

发布于 2014-12-01 21:52:52

URI (或IRI)是一个关于识别资源的标准。这些资源可以是网络文档,真实的东西,等等.在当前情况下,它们是web文档。Afaik。关于URI结构没有标准,但是URI标准以及HTTP标准建议您应该以一种程序性的方式使用URI和HTTP方法。因此,HTTP谓词描述过程,URI标识过程的对象。现在,您通常用动词描述过程,通常用名词来描述对象。这就是为什么只在URI结构中使用名词是合乎逻辑的,至少在URI的(层次化)路径部分。

(您通常可以使用标准的HTTP方法和专有名词来解决所有问题。只有在非常特殊的事情上才会引起问题。在这些情况下,我认为最好使用新的HTTP方法,而不是将谓词放入URI中。但这是非常罕见的。例如,使用查询字符串搜索不兼容的参数,例如文件可以是这样的情况。在这些情况下使用URI中的POST和谓词的另一种替代方法。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27237771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档