宁静的网址模式

时间:2012-05-28 16:08:12

标签: api http url rest permalinks

假设我有一个url如下,例如

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

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

    e.g。

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

6 个答案:

答案 0 :(得分:4)

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

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

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

 http://www.company.com/categories/123/cars #get all cars under category which id = 123

答案 1 :(得分:2)

要使 2。更多的RESTful模式,您将发出GET请求以检索汽车列表。

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

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

留下了用特定(单数)汽车记录扩展它的可能性:

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

答案 2 :(得分:0)

完全取决于您和您的申请。如果您有许多REST服务,您也可以使用carList而不是汽车或汽车。这是有道理的,减少了混乱。确保在所有REST URI中保持一致。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

<强>复数即可。 url中的“cars”元素应反映类别的名称。根据我的经验,类别的名称通常是复数,因为它们标识了一组多个实体。例如:运输设备的类别是:汽车,飞机,自行车和滑板。

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

很好的例子是维基百科对集合类别的命名约定:

  

设置类别以类命名(通常为复数形式)。例如,“分类:法国城市”包含的主题是法国城市的文章。

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

答案 5 :(得分:0)

一个类别包含很多项目。所以,是的。 汽车汽车

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

OR

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