是否有任何理由为什么API路径应该使用复数名词作为单数?

时间:2011-08-17 15:09:36

标签: api http url naming-conventions

很好奇,但我正在创建一个API,到目前为止使用这样的URL:

/用户/创建

/用户/ [ID]

现在我正在添加

/用户/创建/批

这让我想知道是否有任何理由我应该将用户管理端点称为“用户”,而不仅仅是“用户”。然后,也许它根本不重要。我至少会猜测我应该对此保持一致。

思想?

2 个答案:

答案 0 :(得分:7)

我几乎总是在我的网址设计中使用复数形式。我总是想到在我的网址路径中导航,类似于目录,我越来越深入。

有一个顶级资源(如/users)表示一个集合,并且有一些子资源(如/users/{userId}/items)本身就是一个集合。

到目前为止,我所看到的所有apis及其代表域都符合以上建议。

关于您提及的/users/create/batch,您希望在网址内对“操作”进行编码。在基于HTTP的宁静设计中,如果您使用HTTP方法POST /users(单用户有效负载)或者用于传输多个用户的批量创建模式,则更适合。 在您的情况下,“创建”和“批次”意味着什么?

答案 1 :(得分:-1)

我想说你应该将'user'用于与已知特定用户相关的活动,并将'users'用于与所有用户相关的活动(比如全局清理操作),修改用户池(比如你的{ {1}})或获取对已知特定用户的引用。

我会create/users/select找到/获取用户,或/users/search为所有用户做点什么。

我会/users/cleanup与特定用户做某事。

有一种说法,正如你所说,它根本不重要......