Jak powinno się zwracać błędy w typowym REST API? Problem jest w tym że @Valid sprawdzam dto, a dodatkowo musze sprawdzić np. czy taki user nie istnieje w bazie. Sprawdzam to więc w serwisie. Czyli kontroler wygląda tak:
W serwisie mam metode validateAndRegister. Chciałem żeby przy udanej rejestracji zwróciło HttpStatus.OK i body tego usera. Jak coś jest nie tak to jakiś Bad Request i też w jsonie body błędy. Ale spotkałem się z opinią że słabo wygląda jak serwis jest typu ResponseEntity. Więc co mam zwracać żeby dało się to jakoś połączyć?
@PostMapping("/register")
public ResponseEntity registerNewUser(@ModelAttribute @Valid RegisterDto registerDto, BindingResult result) {
if (result.hasErrors()){
return ResponseEntity.badRequest().body(result);
}
userService.validateAndRegister(registerDto)
return ResponseEntity.ok().body();
}
Bambo