0 Tage Serie
java / intermediate
Snippet

Validieren und Iterieren indizierter Array-Nutzdaten in Web-Controllern

Bei der Verarbeitung strukturierter Batch-Nutzdaten deserialisiert Spring eingehende JSON-Arrays automatisch in Java-Arrays oder Sammlungen innerhalb von Datenträger-Records. Die Verwendung indexbasierter Schleifenkontrollstrukturen ermöglicht es Entwicklern, einzelne Array-Elemente zu prüfen und gleichzeitig die exakte Indexposition für lokalisierte Validierungsrückmeldungen zu erfassen, bevor transaktionale Verarbeitungsschritte beginnen.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public record ItemEntry(String skuCode, int quantity) {}
public record BatchShipmentRequest(ItemEntry[] entries) {}
@RestController
@RequestMapping("/shipments")
public class ShipmentController {
@PostMapping("/process-batch")
public ResponseEntity<String> processShipment(@RequestBody BatchShipmentRequest request) {
ItemEntry[] items = request.entries();
if (items == null || items.length == 0) {
return ResponseEntity.badRequest().body("Batch array cannot be empty");
}
int totalQuantity = 0;
for (int i = 0; i < items.length; i++) {
ItemEntry item = items[i];
if (item.quantity() <= 0) {
return ResponseEntity.unprocessableEntity().body("Invalid quantity at index " + i);
}
totalQuantity += item.quantity();
}
return ResponseEntity.ok("Processed " + items.length + " entries with " + totalQuantity + " total items");
}
}
spring
Erklärung
1
public record BatchShipmentRequest(ItemEntry[] entries) {}
Definiert einen unveränderlichen Anfrage-Datenträger, der ein Array strukturierter Positionseinträge enthält.
2
ItemEntry[] items = request.entries();
Extrahiert das deserialisierte Array-Payload aus dem empfangenen Request-Body-Record.
3
for (int i = 0; i < items.length; i++)
Iteriert über Array-Indizes, um Bereichsprüfungen durchzuführen und Validierungsfehler exakt zu lokalisieren.