一些RESTful服务使用不同的资源URI进行更新/获取/删除和创建。例如:
- 创建 - 在某些地方使用/resources(复数)与POST方法,而在其他地方使用/resource(单数)
- 更新 - 使用/resource/123与PUT方法
- 获取 - 使用/resource/123与GET方法
我对这种URI命名约定感到有点困惑。我们应该在创建资源时使用复数还是单数?决定这个的标准是什么?
使用/resources
的前提是它代表了“所有”资源。如果你执行一个GET /resources
,你可能会返回整个集合。通过向/resources
发布,你会将其添加到集合中。
然而,单个资源可以在/resource
上获得。如果你执行一个GET /resource
,你可能会得到一个错误,因为这个请求没有任何意义,而/resource/123
则完全有意义。
使用/resource
而不是/resources
就像你在处理文件系统和一组文件时所做的那样,例如/resource
是包含单独的123
、456
文件的目录。
两种方式都没有对错之分,选择你最喜欢的即可。