RestFul风格
Get
@GetMapping(value = "/users")
public GridResult<?> pagesUser(
@RequestParam(value = "search", required = false) String search,
@RequestParam(value = "size", required = false, defaultValue = "10") int size,
@RequestParam(value = "page", required = false, defaultValue = "1") int page) {
return userService.pages(page, size, search);
}
@RequestParam 接收单个参数
Post
@PostMapping("/users")
public void saveUser(@RequestBody @Validated UserRequestDTO userRequestDTO){
userService.save(userRequestDTO);
}
@RequestBody 接收一个对象
@Validated 校验用
Put
@PutMapping("/users/{id}")
public void updateUser(
@PathVariable("id") String id,
@RequestBody @Validated UserRequestDTO userRequestDTO) {
userService.update(id, userRequestDTO);
}
@PathVariable 接收地址栏上的参数
@RequestBody 接收一个对象
@Validated 校验用
Delete
@DeleteMapping("/users/{id}")
public void removeUserById(@PathVariable("id") String id){
userService.deleteById(id);
}
@PathVariable 接收地址栏上的参数
校验
@NotNull
@NotNull(message = "{areaName.is.not.null}")
private String name;
不能为 null,但可以为 empty,一般用在 Integer 类型的基本数据类型的非空校验上,而且被其标注的字段可以使用 @size、@Max、@Min 对字段数值进行大小的控制
@NotBlank
@NotBlank(message = "{name.not.empty}")
private String name;
只能作用在接收的 String 类型上,注意是只能,不能为 null,而且调用 trim() 后,长度必须大于 0即:必须有实际字符
@NotEmpty
@NotEmpty(message = "{bookingList.not.empty}")
private List<Book> bookList;
不能为 null,且长度必须大于 0,一般用在集合类上或者数组上
@Pattern
正则表达式
@Data
public class VerifyCodeReqDto {
@NotNull(message = "{phone.is.not.null}")
@Pattern(regexp = "^[1](([3][0-9])|([4][5-9])|([5][0-3,5-9])|([6][5,6])|([7][0-8])|([8][0-9])|([9][1,8,9]))[0-9]{8}$",message = "{phone.error}")
private String phone;
}
@Validated 与 @Valid
@Validated:用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。能配合嵌套验证注解@Valid
进行嵌套验证。提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制。没有添加分组属性时,默认验证没有分组的验证属性。
@Valid:用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性(字段)上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。
public class Item {
@NotNull(message = "id不能为空")
@Min(value = 1, message = "id必须为正整数")
private Long id;
@Valid // 嵌套验证必须用@Valid
@NotNull(message = "props不能为空")
@Size(min = 1, message = "props至少要有一个自定义属性")
private List<Prop> props;
}