关于RestController发送请求用List<T> 接收数据

1、发送get请求时,后端可用List<T> 来接收参数,前端或者其他请求可通过逗号 分割参数即可;同时注意特殊字符转换,如日期格式

接收方(后端):

复制代码
  @ApiOperation(value = "手动计算扩缩容", notes = "手动计算扩缩容")
    @GetMapping(value = "/resource/hand")
    public HttpResponse<Object> scaleResource(@RequestParam(name = "ips", required = false) @ApiParam(value = "ip") List<String> ips,
                                      @RequestParam(name = "businesses", required = false)  @ApiParam(value = "业务") List<String> businesses,
                                      @RequestParam(name = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) @ApiParam(value = "开始时间", format = "yyyy-MM-dd", example = "2024-01-01") LocalDate startDate,
                                      @RequestParam(name = "endDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) @ApiParam(value = "结束时间", format = "yyyy-MM-dd", example = "2024-01-01") LocalDate endDate,
                                      @RequestParam(name = "createdBy") @ApiParam(value = "操作人", required = true) String createdBy,
                                      @RequestParam(name = "resourceType", required = false) @ApiParam(value = "资源类型") String resourceType,
                                              @RequestParam(name = "description", required = false) @ApiParam(value = "描述") String description) {
        try{
            if(Objects.isNull(startDate) && Objects.nonNull(endDate)){
                return new HttpResponse<>().error(400, "结束时间不为空时,开始时间也不能为空");
            }
            if(Objects.nonNull(startDate) && Objects.isNull(endDate)){
                return new HttpResponse<>().error(400, "开始时间不为空时,结束时间也不能为空");
            }
            List<Scale> list = scaleService.scaleResource(ips, businesses, startDate, endDate, createdBy, resourceType, description);
            return new HttpResponse<>().success(list);
        }catch (Exception e){
            return new HttpResponse<>().error(500, e.getMessage());
        }
    }

调用方(页面):

复制代码
public String handScaleInfo(){
        logger.info("手动计算扩缩容操作开始...");
        // session中获取用户ID
        String userId = ((UserBean) ServletActionContext.getRequest()
                .getSession().getAttribute(SessionKeys.userInfo.toString()))
                .getUserId();
        if (userId == null || userId == "") {
            logger.error("创建人信息为空,手动扩缩容失败");
            errMsg = "创建人信息为空,手动扩缩容失败";
            return ConstantEnum.ERROR.toString();
        }
        handScale.setCreatedBy(userId);
        Integer pageNum = getPage();
        Integer pageSize = getPageSize();
        String urlParams = Util.getUrlParams(handScale, pageNum, pageSize,"startTime");
        String url = scaleUrl + "/scale/resource/hand/" + urlParams.replace(" ", "%20").replace(":", "%3A");;
        String response = Util.doGet(url);
        if (StringUtils.isNotEmpty(response)) {
            HttpResponse httpResponse = JSON.parseObject(response, HttpResponse.class);
            if (200 == httpResponse.getCode()) {
                result.setResultFlage(ConstantEnum.SUCCESS.toString());
                result.setResultMessage(getText("resourceAnalysis.opt.success"));
            } else {
                result.setResultFlage(ConstantEnum.FAILURE.toString());
                result.setResultMessage(getText("resourceAnalysis.http.fail"));
                return ConstantEnum.FAILURE.toString();
            }
        } else {
            result.setResultFlage(ConstantEnum.FAILURE.toString());
            result.setResultMessage(getText("resourceAnalysis.http.fail"));
            return ConstantEnum.FAILURE.toString();
        }

        return ConstantEnum.SUCCESS.toString();
    }

@Data
public class HandScale {

     /**
     * 多个参数逗号分割
     */
    private String businesses;
    private String ips;
    private String resourceType;
    private String description;
    private String startDate;
    private String endDate;
    private String createdBy;
}
相关推荐
星空10 小时前
Springboot复习
java·spring boot·spring
老郑聊AI业财智造11 小时前
TOGAF、DDD与微服务:软件架构的多维透视
spring boot·spring cloud·微服务·金融·架构·软件工程·制造
wno70413 小时前
Spring Boot JdbcTemplate配置Druid多数据源
java·spring boot·后端
wear工程师13 小时前
Spring Boot 服务挂了却没重启?先分清 systemd 的三次判断
spring boot
旺仔学长 哈哈14 小时前
52486|高校专业评估不再靠表格:Spring Boot 本科专业质量评估管理系统实战
数据库·spring boot·毕业设计·教育管理
2601_9638702114 小时前
【计算机毕业设计】基于Spring Boot+Vue的高考志愿填报系统的设计与实现
spring boot·课程设计·高考
weixin_BYSJ198714 小时前
springboot小区物业管理小程序---附源码45555
java·javascript·spring boot·python·django·flask·php
RuoyiOffice15 小时前
抓包还能看到密码?Vue3 + Spring Boot 3 接口 AES/RSA 加解密(@ApiEncrypt)全链路实战
spring boot·vue3·aes·rsa·接口安全·spring boot 3·apiencrypt
凤山老林15 小时前
零停机数据库演进:Spring Boot 集成 Flyway 与平滑DDL变更策略
数据库·spring boot·后端
抓哇小菜鸡15 小时前
Spring Boot + 本地大模型(Ollama/DeepSeek) + MyBatis-Plus 企业级智能体数据分析系统从零到一源码全解析
spring boot·后端·mybatis