0

假设我有一个如下的网址,例如

  1. http://www.company.com/categories # 列出所有类别
  2. http://www.company.com/categories/car # 列出所有汽车
  3. http://www.company.com/products/303 # 唯一 id = 303 的汽车

我的问题是,对于 2. http://www.company.com/categories/car,如果我使用它的复数形式会更好吗?

例如

http://www.company.com/categories/cars
4

6 回答 6

5

如果您对资源使用复数,这是正确的。但是,如果您使用这样的 url,它就不会被称为 Restful:

 http://www.company.com/categories/cars

因为汽车是类别的子资源......所以为了更好,我建议您应该将您的汽车资源公开为特定类别的子资源:

 http://www.company.com/categories/123/cars #get all cars under category which id = 123
于 2012-05-31T04:08:22.160 回答
2

为了使2.更像一个 RESTful 模式,您将发出一个GET检索汽车列表的请求。

在这种情况下,使用复数是有意义的:

http://www.company.com/categories/cars

这为使用特定(单一)汽车记录扩展它提供了可能性:

http://www.company.com/categories/cars/ferrari
于 2012-05-29T13:14:18.223 回答
0

这完全取决于您和您的应用程序。如果您有许多 REST 服务,您也可以使用 carList 代替 car 或 cars。这是有道理的,而且更少混乱。确保在所有 REST URI 中保持统一。

于 2012-06-06T04:45:10.453 回答
0

将其视为 Windows 资源管理器目录。如果您在本地文件夹中组织汽车,法拉利会在哪里?

另一件要考虑的事情是专门为 PUT 和 POST 请求设计 URI,在这些请求中有更多的名词和更少的动词。

于 2012-06-06T09:29:40.587 回答
0

复数。url 中的“汽车”元素应反映类别的名称。根据我的经验,类别的名称通常是复数,因为它们标识了一组多个实体。例如:交通工具的类别是:汽车、飞机、自行车和滑板。

某物是汽车,属于“汽车”类别。

很好的例子是 wikipedia 上集合类别的命名约定:

集合类别以类命名(通常以复数形式)。例如,Category:Cities in France 包含主题为法国城市的文章。

https://en.wikipedia.org/wiki/Wikipedia:Set_category#Set_category

于 2012-06-06T11:36:06.963 回答
0

一个类别包含很多项目。所以,是的。汽车比汽车更有意义

http://www.company.com/categories/cars/mitsubishi/lancer (if you have more categories)

或者

http://www.company.com/categories/cars/lancer
于 2012-06-07T02:42:06.910 回答