You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot单个GET接口如何同时返回List<Courier>与OrderRelatedInfo

SpringBoot单个GET请求同时返回多类数据的实现方案

完全可以通过单个GET请求同时返回快递员列表(List<Courier>)和订单关联信息(OrderRelatedInfo),核心是用一个**数据传输对象(DTO)**来封装这两类数据,或者用Map临时封装(推荐前者)。

代码中?处的填写方案

1. 自定义DTO封装(推荐)

首先创建一个专门的DTO类,用来承载需要返回的两类数据:

import java.util.List;

// 可以用Lombok的@Data注解自动生成getter、setter等方法,也可以手动编写
public class SearchResultDTO {
    private List<Courier> courierList;
    private OrderRelatedInfo orderRelatedInfo;

    // 手动编写getter和setter
    public List<Courier> getCourierList() {
        return courierList;
    }

    public void setCourierList(List<Courier> courierList) {
        this.courierList = courierList;
    }

    public OrderRelatedInfo getOrderRelatedInfo() {
        return orderRelatedInfo;
    }

    public void setOrderRelatedInfo(OrderRelatedInfo orderRelatedInfo) {
        this.orderRelatedInfo = orderRelatedInfo;
    }
}

然后修改Controller方法:
第一个?填写DTO类名SearchResultDTO,第二个?填写封装好的DTO实例:

@GetMapping("/search/{id}")
public SearchResultDTO search(@PathVariable String id){
    List<Courier> courierList = xyzListReturning; // 替换为实际获取快递员列表的业务逻辑
    OrderRelatedInfo orderRelatedInfo = xyzObjectReturning; // 替换为实际获取订单关联信息的业务逻辑
    
    SearchResultDTO result = new SearchResultDTO();
    result.setCourierList(courierList);
    result.setOrderRelatedInfo(orderRelatedInfo);
    
    return result;
}

2. 用Map临时封装(快速实现)

如果不想创建DTO类,也可以用Map<String, Object>来临时封装数据,此时第一个?填写Map<String, Object>,第二个?填写封装好的Map实例:

import java.util.HashMap;
import java.util.Map;

@GetMapping("/search/{id}")
public Map<String, Object> search(@PathVariable String id){
    List<Courier> courierList = xyzListReturning;
    OrderRelatedInfo orderRelatedInfo = xyzObjectReturning;
    
    Map<String, Object> result = new HashMap<>();
    result.put("courierList", courierList);
    result.put("orderRelatedInfo", orderRelatedInfo);
    
    return result;
}

说明

  • SpringBoot会自动将返回的DTO或Map序列化为JSON格式响应给前端,前端可以通过对应的键名(如courierList、orderRelatedInfo)提取对应数据。
  • 优先选择自定义DTO的方式,因为它具备类型安全性,便于后续维护、扩展和接口文档生成。

内容的提问来源于stack exchange,提问作者AasthaChaudhary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 02:05:11