获取所有父资源的GET请求响应体是否应返回子资源列表?
如何获取包含员工列表的公司集合?
我来给你捋捋具体的实现思路哈——咱们要做的就是把两个接口的数据整合,让每个公司对象里都带上对应的员工列表。下面我用前端常用的JavaScript来举个实际例子,不管你用浏览器的fetch还是Node.js的axios,核心逻辑都是相通的:
实现步骤
- 第一步:先调用
api/companies接口,拿到所有公司的基础数据 - 第二步:遍历每个公司,调用对应的
api/companies/{companyId}/employees接口获取该公司的员工列表 - 第三步:把员工列表合并到对应的公司对象里,最终得到整合后的完整数组
代码示例(基于浏览器fetch API)
async function getCompaniesWithEmployees() { try { // 先拉取所有公司的基础信息 const companiesRes = await fetch('api/companies'); const companies = await companiesRes.json(); // 并行请求每个公司的员工数据,提升效率 const companiesWithStaff = await Promise.all( companies.map(async (company) => { const employeesRes = await fetch(`api/companies/${company.id}/employees`); const employees = await employeesRes.json(); // 把员工列表合并到原公司对象中 return { ...company, employees }; }) ); return companiesWithStaff; } catch (err) { console.error('数据获取失败:', err); throw err; } } // 调用函数查看结果 getCompaniesWithEmployees().then(mergedData => { console.log('整合后的公司+员工数据:', mergedData); });
小提示
- 用
Promise.all并行请求员工数据,比逐个串行请求效率高很多 - 一定要加错误捕获,避免单个接口请求失败导致整个流程卡壳
- 如果公司数量特别多,建议加个请求节流逻辑,防止一下子发太多请求触发接口限流
内容的提问来源于stack exchange,提问作者Liutong Chen
相关产品推荐
相关产品推荐

