关于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;
}
相关推荐
Spider Cat 蜘蛛猫33 分钟前
Springboot SSO系统设计文档
java·spring boot·后端
学习3人组10 小时前
业务主表+JSON自定义字段
java·spring boot·json
吕永强11 小时前
基于SpringBoot+Vue宠物领养系统的设计与实现(源码+论文+部署)
spring boot·毕业设计·毕业论文·宠物领养·宠物领养系统
yoyo_zzm12 小时前
PHP vs Java:后端语言终极选择指南
java·spring boot·后端·架构·php
鱼鳞_13 小时前
苍穹外卖-Day01(开发环境搭建)
java·spring boot·spring·maven
学不思则罔13 小时前
SpringBoot启动失败排查指南
spring boot·后端·部署
夕除13 小时前
spring boot 5
数据库·spring boot·后端
yoyo_zzm14 小时前
ThinkPHP1.X核心特性解析
数据库·spring boot·nginx
hexu_blog14 小时前
前端vue后端java+springboot如何实现pdf,word,excel之间的相互转换
java·前端·vue.js·spring boot·文档转换
倒流时光三十年15 小时前
第9篇 消息不丢:三端协同防丢失方案
spring boot·kafka