创建资源时使用单数或复数名称的资源
我是REST的新手,我发现在一些RESTful服务中,他们使用不同的资源URI进行更新/获取/删除和创建。 如
我对这个URI命名约定有点困惑。 我们应该使用复数还是单数来创建资源? 在决定时应该是什么标准?
使用/resources
的前提是它代表“所有”资源。 如果您执行GET /resources
,您可能会返回整个集合。 通过发布到/resources
,您将添加到集合中。
但是,个人资源在/资源处可用。 如果你做了一个GET /resource
,你可能会错误,因为这个请求没有任何意义,而/resource/123
非常有意义。
使用/resource
,而不是/resources
相似,你会怎么做,如果你用,比如说,一个文件系统和文件的收集工作和/resource
是“目录”与个人123
, 456
在它的文件。
这两种方式都不是对错,而是用你最喜欢的方式去做。
对于我来说,最好有一个可以直接映射到代码的架构(易于自动化),主要是因为代码是两端都会发生的事情。
GET /orders <---> orders
POST /orders <---> orders.push(data)
GET /orders/1 <---> orders[1]
PUT /orders/1 <---> orders[1] = data
GET /orders/1/lines <---> orders[1].lines
POST /orders/1/lines <---> orders[1].lines.push(data)
我也没有看到这一点,我认为这不是最好的URI设计。 作为RESTful服务的用户,我希望列表资源具有相同的名称,而不管我是否访问列表中的列表或特定资源。 无论您想使用列表资源还是特定资源,都应使用相同的标识符。
链接地址: http://www.djcxy.com/p/1083.html上一篇: Singular or plural name of resource while creating it
下一篇: HTTP response code for POST when resource already exists