如何为分层数据设计最佳REST端点

时间:2016-08-15 13:42:58

标签: rest

考虑我的数据库中有以下表格

项目

Project_id(int)PK

名称(字符串)

描述(字符串)

Project_employee

Project_employee_id(int)Pk

Emp_id(int)FK

Project_id(int)FK

project_join_date(date)

我希望其余端点符合以下要求

  1. 获取给定项目的所有project_employees
  2. 获取给定project_employee_id的project_employee
  3. 添加project_employee
  4. 更新project_employee
  5. 删除project_employee
  6. 我对上述要求的Rest端点的设计将是

    www.myapp.com/app/v1.0/porjects/ {id} / project-employees / {id} GET PUT POST DELETE

    " /项目/ {ID}"仅对获得给定项目的所有员工的第一个要求有用。对于所有其他需求项目/ {id}根本没用。

    所以我想知道上述要求的正确REST端点是什么。

    我可以获取任何REST API最佳实践文档吗?还需要文档/ Book来设计REST API。

1 个答案:

答案 0 :(得分:0)

我创建了一个单独的/employees资源,这样您就可以管理员工而无需指定项目ID,甚至可以让员工当前没有分配到项目中。

我仍然会保留/projects/:id/employees,以便您可以管理项目与员工之间的关系,如下所示:

  • 获取给定项目的所有project_employees

    GET /projects/:id/employees

  • 获取给定project_employee_id的project_employee

    GET /employees/:id

  • 添加project_employee

    POST /projects/:id/employees

  • 更新project_employee

    PUT /employees/:id

  • 删除project_employee

    DELETE /employees/:id