我应该使用REST资源的单数还是复数命名约定?

发布时间 2023-11-02 20:45:49作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=我应该使用REST资源的单数还是复数命名约定?

一些RESTful服务使用不同的资源URI进行更新/获取/删除和创建。例如:

  • 创建 - 在某些地方使用/resources(复数)与POST方法,而在其他地方使用/resource(单数)
  • 更新 - 使用/resource/123与PUT方法
  • 获取 - 使用/resource/123与GET方法

我对这种URI命名约定感到有点困惑。我们应该在创建资源时使用复数还是单数?决定这个的标准是什么?


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

然而,单个资源可以在/resource上获得。如果你执行一个GET /resource,你可能会得到一个错误,因为这个请求没有任何意义,而/resource/123则完全有意义。

使用/resource而不是/resources就像你在处理文件系统和一组文件时所做的那样,例如/resource是包含单独的123456文件的目录。

两种方式都没有对错之分,选择你最喜欢的即可。