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
- Model Class
- Controller Class
- 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
Postar um comentário