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 接收地址栏上的参数

校验

DTO 中校验时,务必在 Controller 上加 @Validated

@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;
}
最后修改:2022 年 07 月 06 日 04 : 13 PM
赏杯咖啡喝 谢谢您~