RESTful概念:组织分层资源

时间:2016-12-05 07:09:15

标签: rest restful-architecture

我正在尝试为几种用户类型组织REST api,但我不明白资源应该如何相互投入。例如,管理员可以使用员工列表进行操作(创建,编辑和删除项目)。管理员还可以操纵每个员工的工作场所列表。我认为api路线应该是这样的:

GET:    /employees
GET:    /employees/{id}
POST:   /employees
PUT:    /employees/{id}
DELETE: /employees/{id}

GET:    /employees/{id}/workplaces
GET:    /employees/{id}/workplaces/{id}
POST:   /employees/{id}/workplaces
PUT:    /employees/{id}/workplaces/{id}
DELETE: /employees/{id}/workplaces/{id}

我知道如果id的资源不存在,那么我应该返回404: Not found,但GET: /employees/{id}/workplaces/{id}呢?在404: Not found的员工或工作场所不存在的情况下,我是否应该返回id?或者可能存在此任务的其他解决方案?

另一个问题是具有不同权限的用户具有不同的资源访问权限。例如,部门主管可以获得其部门的员工列表,但无法获得其他部门的列表。我提出以下API路径:

GET: /departments/my/employees
GET: /departments/my/employees/{id}

正如您在上面所看到的,我建议替换关键字id上的my,这意味着必须从授权令牌中取出id部门。拥有更多权限并可以列出部门的其他用户可以执行以下操作:

GET: /departments/{id}/employees
GET: /departments/{id}/employees/{id}

这是构建REST服务的真正方法吗?

0 个答案:

没有答案