0 Tage Serie
java / beginner
Snippet

Validieren von REST-Anfrage-Payloads mit Jakarta-Annotationen

Spring Boot lässt sich nahtlos in die Jakarta Bean Validation integrieren, um eingehende HTTP-Anfragedaten vor der Ausführung der Controller-Logik zu prüfen. Annotationen wie @NotBlank und @Min an DTO-Feldern erzwingen Pflichtfelder und Wertegrenzen. Das Voranstellen von @Valid vor @RequestBody startet die Validierung automatisch und lehnt fehlerhafte Daten mit HTTP 400 Bad Request ab.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class UserRegistrationDto {
@NotBlank(message = "Username cannot be blank")
private String username;
@Min(value = 18, message = "Age must be at least 18")
private int age;
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
@RestController
@RequestMapping("/api/users")
public class UserController {
@PostMapping
public ResponseEntity<String> registerUser(@Valid @RequestBody UserRegistrationDto dto) {
return ResponseEntity.ok("Registration valid for: " + dto.getUsername());
}
}
spring
Erklärung
1
@NotBlank(message = "Username cannot be blank")
Stellt sicher, dass das Textfeld nicht null ist und mindestens ein Zeichen enthält, das kein Leerzeichen ist.
2
@Min(value = 18, message = "Age must be at least 18")
Beschränkt den ganzzahligen Wert darauf, dass Werte unter 18 einen Validierungsfehler auslösen.
3
public ResponseEntity<String> registerUser(@Valid @RequestBody UserRegistrationDto dto)
Die @Valid-Annotation weist Spring an, den eingehenden JSON-Körper anhand des DTOs vor dem Methodenaufruf zu prüfen.