validate là gì

Validation là hành vi đánh giá tính hợp thức của tài liệu. Việc này hỗ trợ cho khối hệ thống sinh hoạt tin cậy, đáp ứng, tách xử lý tài liệu lỗi,… và cũng hùn ngăn ngừa một vài cuộc tiến công thịnh hành như SQL injection hoặc XSS.

Ví dụ khi nhập tài liệu nhập khuông đăng kí, cần thiết tiến hành validate tài liệu khuông nhằm đảm bảo:

Bạn đang xem: validate là gì

  • Trường username ko được trống
  • Password nên đầy đủ chừng khó
  • Email nên chính định hình email

Đấy, toàn bộ những việc đánh giá tài liệu trước xử lý đều được gọi là validation. Chúng tớ nhập thực hành thực tế nhé!

THAM KHẢO WEBSITE SPRING BOOT

Maven dependency

Như vẫn trình bày phía trên, thì nhập bài bác này tất cả chúng ta tiếp tục thực hiện validate tài liệu mang lại Rest API. Do vậy tất cả chúng ta sẽ phải thêm spring-boot-starter-web. Ngoài đi ra, bản thân thêm Lombok dependency nhằm sinh những hàm constructor, getter, tự động hóa.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>Code language: HTML, XML (xml)

Cuối nằm trong, dependency cần thiết nhất của tất cả chúng ta là spring-boot-starter-validation cung cung cấp những annotation dùng làm validate tài liệu.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>Code language: HTML, XML (xml)

Tạo DTO

Trong đa số những Rest API đều dùng những DTO như là một trong những class dùng làm tiếp xúc thân mật client và server, tất cả chúng ta tránh việc dùng thẳng một entity nhằm truyền nhập nhận thân mật client-server vì thế song khi sở hữu những vấn đề nhập entity tránh việc trả về mang lại server ví như password của user. Như vậy dùng DTO được cho phép tất cả chúng ta toàn quyền ra quyết định những tài liệu sử dụng nhập tiếp xúc thân mật client và server.

THAM GIA KHÓA HỌC LẬP TRÌNH

Tạo một UserDTO

Xem thêm: cảm nhận về nhân vật chị dậu

@Data
public class UserDTO {
    private long id;
    @NotBlank(message = "Name is mandatory")
    private String name;
    @NotBlank(message = "Email is mandatory")
    private String email;
    @Min(value = 18, message = "Age can not be less than thở 18")
    @Max(value = 50, message = "Age can not be greater than thở 50")
    private Integer age;
}Code language: CSS (css)
  • @Data sẽ tương tự với annotation @Getter + @Setter + @ToString + @EqualsAndHashCode + @NoArgsConstructor
  • @Min: value truyền nhập ko thế nhỏ rộng lớn thông số được khai báo.
  • @Max: value truyền nhập ko thế to hơn thông số được khai báo.
  • @NotBlank: chuỗi truyền nhập ko thế blank

Tạo Controller

Cuối nằm trong, sau thời điểm sở hữu DTO, tất cả chúng ta tiếp tục tổ chức tạo nên controller nhằm nhận những request kể từ client trình lên server, tiếp sau đó tổ chức validate tài liệu.

@RestController
public class UserController {
    @PostMapping("/users")
    ResponseEntity<String> addUser(@Valid @RequestBody UserDTO userDTO) {
        return ResponseEntity.ok("User is valid");
    }
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public Map<String, String> handleValidationExceptions(MethodArgumentNotValidException ex) {
        Map<String, String> errors = new HashMap<>();
        ex.getBindingResult().getAllErrors().forEach((error) -> {
            String fieldName = ((FieldError) error).getField();
            String errorMessage = error.getDefaultMessage();
            errors.put(fieldName, errorMessage);
        });
        return errors;
    }
}Code language: JavaScript (javascript)

Trong tê liệt, @Valid annotation được dùng với những thông số nguồn vào nhập Rest method, Spring Boot tiếp tục tìm hiểu tìm kiếm những thông số được chú mến với annotation nhằm tiến hành những đánh giá như vẫn khái niệm trước tê liệt. Khi những thông số ko thỏa mãn nhu cầu đầy đủ ĐK tuy nhiên tất cả chúng ta vẫn đưa ra trước tê liệt, Spring Boot tiếp tục ném MethodArgumentNotValidException.

KHOÁ HỌC LẬP TRÌNH DÀNH CHO NGƯỜI MỚI

Do vậy tất cả chúng ta cần thiết sử dụng @ExceptionHandler annotation nhằm bắt MethodArgumentNotValidException ném đi ra kể từ Spring Boot khi sở hữu lỗi validate nhằm xử lý và trả về thành quả lỗi mang lại client.

Để kiểm demo tất cả chúng ta tiếp tục khởi chạy phần mềm và request với những vấn đề không phù hợp lệ

Xem thêm: bài tập khoa học tự nhiên lớp 6

curl -d "{\"age\":10}" -H "Content-Type: application/json" -X POST http://localhost:8080/users
---
{
    "name": "Name is mandatory",
    "age": "Age can not be less than thở 18",
    "email": "Email is mandatory"
}Code language: JavaScript (javascript)

Trên đấy là cơ hội tuy nhiên tôi validate tài liệu API nhập Spring Boot Hãy ghi ghi nhớ hoặc khắc ghi nội dung bài viết nhằm hoàn toàn có thể tìm hiểu đi ra và dùng một cơ hội nhanh gọn lẹ. Nếu sở hữu gì thiếu thốn sót, hãy comment phía bên dưới nhé

Happy learning!!!

>> Xem tức thì Tài liệu Java Chip Core giúp đỡ bạn “Nâng Cấp” tài năng lập trình