REST API:在单个查询中创建嵌套资源

Posted

技术标签:

【中文标题】REST API:在单个查询中创建嵌套资源【英文标题】:REST API: Create nested resources in single query 【发布时间】:2020-10-17 01:37:43 【问题描述】:

我有 2 个资源公司和员工,公司可以在没有员工的情况下存在,但不能反过来。

要创建有员工的公司,我必须触发 2 个 REST API,

POST /companies
POST /companies/:company_id/employees

Q1:如果我在单个休息查询中创建员工和公司可以吗?

POST /companies

  "company_name": "my company",
  "employees": [
     "name": "Test name 1",
     "name": "Test name 2"
  ]

Q2:如果是,对/companies 的 GET 请求是否也必须返回相同的嵌套文档?

我正在计划这样的事情:使用上述查询与员工一起发布公司数据

GET /companies - Will give me only company data
GET /companies?populate=employees - Will populate the nested resouces in this GET call
GET /companies/:company_id/employees - I still should be able to access employees in this manner

【问题讨论】:

【参考方案1】:

你会如何在网站上做到这一点?

Q1:如果我在单个休息查询中创建员工和公司可以吗?

是的,可以创建多个资源来响应单个请求。

Q2:如果是,对/companies 的 GET 请求是否也必须返回相同的嵌套文档?

不,这不是强制性的。

【讨论】:

以上是关于REST API:在单个查询中创建嵌套资源的主要内容,如果未能解决你的问题,请参考以下文章

创建 REST API 时使用 Laravel 嵌套动态资源控制器的正确方法

在单个命令行中创建文件以及嵌套目录

如何使用 Cloudformation 在 AWS RestAPI 中创建嵌套资源路径?

在 Firestore REST API 中查询嵌套对象

为嵌套资源设计rest api

Django REST Framework 中的嵌套资源