How to validade objects on backend - Spring Boot

What problem does this solve

If you need to validate objects on backend with Spring boot. You can create validation to each property with custom messages. A very useful feature to your projects.
 
 
 

 

Prerequisites

  1.     Model Class
  2.     Controller Class
  3.     End Point with @RequestBody 

The solution

    Add the starter-validation dependency on your pom.xml
 
<dependency>
    <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
 
     On your Model add the annotations for validation on each property. You can see more annotations in javax validation constraints java doc.

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserLoginDTO {

@Email
private String email;

@NotBlank
private String password;

}

  On the endpoint add @Valid Annotation after @RequestBody

@PostMapping("/login")
public ResponseEntity<User> login(@RequestBody @Valid UserLoginDTO loginDTO) {
var loggedUser = service.doLogin(loginDTO.getEmail(), loginDTO.getPassword());
return ResponseEntity.ok(loggedUser);
}

That's It.

 Thanks for reading!

Comentários

Postagens mais visitadas deste blog