Skip to content
Lektion undefined von undefined0/undefined abgeschlossen
Modul 3 — REST APIs

REST APIs — Controller & Endpoints

0 pts

REST APIs mit Spring Boot

Spring Boot macht REST trivial: eine Annotation, eine Methode, fertig.

Lektion 11: @RestController

@RestController = @Controller + @ResponseBody. Jeder Rückgabewert wird direkt als JSON serialisiert (via Jackson).

@RestController
@RequestMapping("/api/products")
public class ProductController {
    @GetMapping
    public List<Product> all() { return service.findAll(); }
}

Lektion 12: HTTP-Methoden

AnnotationHTTPUse Case
@GetMappingGETLesen
@PostMappingPOSTErstellen
@PutMappingPUTVollständig ersetzen
@PatchMappingPATCHTeilweise aktualisieren
@DeleteMappingDELETELöschen

Lektion 13: Path-Variablen & Request-Parameter

@GetMapping("/{id}")
public Product byId(@PathVariable Long id) { return service.findById(id); }

@GetMapping("/search")
public List<Product> search(@RequestParam String q) { return service.search(q); }

Lektion 14: Request-Body & DTOs

record ProductDto(String name, double price) {}

@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public ProductDto create(@Valid @RequestBody ProductDto dto) {
    return service.create(dto);
}

record DTos sind immutable, kompakt und automatisch JSON-serialisierbar.

DTOs vs. Entities

Trenne Entitäten (JPA) von DTOs (API). Nie Entitäten direkt als Response zurückgeben — das offengelegt Lazy-Loading-Probleme und interne Felder. Ein record als DTO ist 1 Zeile: record ProductDto(String name, double price) {}.

Lektion 15: Status-Codes & Content Negotiation

@PostMapping
public ResponseEntity<ProductDto> create(@Valid @RequestBody ProductDto dto) {
    ProductDto saved = service.create(dto);
    return ResponseEntity.created(URI.create("/api/products/" + saved.id())).body(saved);
}
Java Playground — REST simuliertBereit
Editor wird geladen…

HTTP-Status-Codes: die richtige Antwort

Status-Codes sind Vertrag. 2xx = Erfolg, 3xx = Umleitung, 4xx = Client-Fehler, 5xx = Server-Fehler. Die häufigsten: 200 OK, 201 Created, 204 No Content, 400 Bad Request, 404 Not Found, 409 Conflict, 422 Unprocessable Entity. Spring Boot 3 nutzt ResponseEntity<T> für volle Kontrolle über Status und Header.

Praxis-Szenario: REST-API für einen Blog

Du designst eine Blog-API. Endpunkte: Beiträge listen, erstellen, lesen, aktualisieren, löschen. Welche HTTP-Methoden und Status-Codes verwendest du?

✅ Wichtige Erkenntnisse

Haken setzen, um deinen Lernfortschritt zu markieren:

    This site uses essential cookies for Stripe payments. No tracking cookies.