关于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;
}
相关推荐
摇滚侠8 小时前
Spring Boot3零基础教程,KafkaTemplate 发送消息,笔记77
java·spring boot·笔记·后端·kafka
计算机学长felix11 小时前
基于SpringBoot的“面向校园的助力跑腿系统”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·后端
java水泥工12 小时前
课程答疑系统|基于SpringBoot和Vue的课程答疑系统(源码+数据库+文档)
spring boot·vue·计算机毕业设计·java毕业设计·大学生毕业设计·课程答疑系统
Rocket MAN14 小时前
Spring Boot 缓存:工具选型、两级缓存策略、注解实现与进阶优化
spring boot·后端·缓存
程序定小飞17 小时前
基于springboot的民宿在线预定平台开发与设计
java·开发语言·spring boot·后端·spring
FREE技术17 小时前
山区农产品售卖系统
java·spring boot
摇滚侠19 小时前
Spring Boot3零基础教程,云服务停机不收费,笔记71
java·spring boot·笔记
摇滚侠19 小时前
Spring Boot3零基础教程,监听 Kafka 消息,笔记78
spring boot·笔记·kafka
摇滚侠20 小时前
Spring Boot3零基础教程,RedisTemplate 定制化,笔记70
spring boot·笔记·后端
刘一说20 小时前
深入浅出 Spring Boot 自动配置(Auto-Configuration):原理、机制与最佳实践
java·spring boot·后端