REST资源为唯一资源命名

时间:2019-02-07 15:13:43

标签: rest naming-conventions

我拥有的资源基本上是当前(经过身份验证的)用户可以访问的所有事物的集合。我们称之为Workspace

鉴于每个用户始终只有一个Workspace

我应该应用“复数”约定吗?如果是,我是否应该创建一个伪造的子资源来表示它是唯一的?

换句话说,我应该使用:

  • /workspace->当前用户工作区

  • /workspaces/~->当前用户工作区
  • /workspaces-> 404

从用户角度来看,拥有一个唯一的/workspace资源是有意义的。 但是,从系统角度来看,有很多工作空间,但每个用户只有一个工作空间,因此/workspaces/~看起来更合逻辑。

1 个答案:

答案 0 :(得分:0)

这里没有任何硬性规定。我想说的是使用对最终用户有意义的任何东西,最好与您在其他地方所做的一致。

例如,根据您网站的工作方式,还会想到其他一些地址。如果工作空间与用户相关联,那么将其放在/users/{id}/workspaces地址下也许是有意义的。也许这对您的情况没有意义。因此,在您提供的选项中,我想说的是,如果对客户显而易见的是应该有多个工作区,但它们只能访问一个,那么/workspaces/{id}地址就适合该模型。如果他们看上去工作空间是唯一的实体,那么使用复数地址可能会造成混淆。

在我自己的设计中,我趋向于对所有事物都使用复数的方向。