创建资源时使用单数或复数名称的资源

我是REST的新手,我发现在一些RESTful服务中,他们使用不同的资源URI进行更新/获取/删除和创建。 如

  • 使用/ resource (单数)在某些地方创建 - 使用/使用POST方法的资源 (观察复数)
  • 使用PUT方法更新 - using / resource / 123
  • 使用GET方法获取 - 使用/ resource / 123
  • 我对这个URI命名约定有点困惑。 我们应该使用复数还是单数来创建资源? 在决定时应该是什么标准?


    使用/resources的前提是它代表“所有”资源。 如果您执行GET /resources ,您可能会返回整个集合。 通过发布到/resources ,您将添加到集合中。

    但是,个人资源在/资源处可用。 如果你做了一个GET /resource ,你可能会错误,因为这个请求没有任何意义,而/resource/123非常有意义。

    使用/resource ,而不是/resources相似,你会怎么做,如果你用,比如说,一个文件系统和文件的收集工作和/resource是“目录”与个人123456在它的文件。

    这两种方式都不是对错,而是用你最喜欢的方式去做。


    对于我来说,最好有一个可以直接映射到代码的架构(易于自动化),主要是因为代码是两端都会发生的事情。

    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