公司动态
后端参数校验
后端参数校验实验目的1.理解后端参数校验的重要性。2.掌握 Spring Boot 参数校验机制。3.掌握常用校验注解NotNull、NotBlank、Min 等。4.掌握 Valid 的使用方法。5.结合全局异常处理实现校验错误统一返回。实验环境开发工具IntelliJ IDEA构建工具Maven测试工具Postman或浏览器AI工具通义灵码实验要求在校园二手交易系统中实现全局异常处理功能1.对商品新增接口进行参数校验2.字段不能为空、长度限制、数值范围校验3.校验失败时返回统一 Result 格式4.结合实验08实现校验异常统一处理实验内容第一部分问题引入当前系统问题❌ 可以提交空数据❌ 价格可以为负数❌ 字段长度无限制❌ 数据不安全目标接口自动校验参数合法性第二部分引入依赖dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId/dependency第三部分实体类添加校验注解public class Goods {private Long id;NotBlank(message 商品名称不能为空)private String title;NotBlank(message 商品描述不能为空)private String description;NotNull(message 价格不能为空)Min(value 1, message 价格必须大于0)private Double price;NotBlank(message 发布人不能为空)private String seller;}常用注解说明注解说明NotNull不能为 nullNotBlank字符串不能为空Min最小值Max最大值Size长度限制第四部分Controller开启校验1.新增商品接口PostMapping(/goods)public ResultString add(RequestBody Valid Goods goods){goodsMapper.insert(goods);return Result.success(添加成功);}作用Valid 用于开启校验第五部分处理校验异常1.在GlobalExceptionHandler 中新增ExceptionHandler(MethodArgumentNotValidException.class)public ResultVoid handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {StringBuilder errorMessage new StringBuilder();e.getBindingResult().getFieldErrors().forEach(error - {if (errorMessage.length() 0) {errorMessage.append(; );}errorMessage.append(error.getField()).append(: ).append(error.getDefaultMessage());});return Result.error(400, errorMessage.toString());}第六部分测试功能1.正常请求{title: 二手耳机,description: 几乎全新,price: 100,seller: 张三}返回{code: 200,message: 操作成功,data: 添加成功}2.字段为空{title: ,description: 测试,price: 100,seller: 张三}返回{code: 400,message: title: 商品标题不能为空,data: null}3.价格非法{title: 测试商品,description: 测试,price: -10,seller: 张三}返回{code: 400,message: price: 商品价格必须大于 0,data: null}