Wie man in 30 Minuten eine REST API in Java schreibt: Schritt-für-Schritt-Anleitung
Die Erstellung einer REST API ist eine der Schlüsselqualifikationen eines modernen Java-Entwicklers. REST (Representational State Transfer) ermöglicht den Aufbau leichtgewichtiger, skalierbarer und verständlicher Webdienste. In dieser Anleitung erstellen wir in 30 Minuten eine vollständige REST API mit Spring Boot. Sie lernen, wie Sie das Projekt konfigurieren, Endpunkte für die Benutzerverwaltung erstellen, JSON verarbeiten und die API über Postman oder den Browser testen.
1. Was ist eine REST API und warum wird sie benötigt?
Eine REST API ist ein Architekturstil, bei dem Client und Server Daten über HTTP-Anfragen austauschen. Die grundlegenden Prinzipien von REST sind:
- Ressourcen — jedes Objekt (Benutzer, Produkt, Bestellung) wird durch eine URL repräsentiert.
- HTTP-Methoden — GET (Lesen), POST (Erstellen), PUT (Aktualisieren), DELETE (Löschen).
- Stateless — jede Anfrage enthält alle notwendigen Informationen; der Server speichert keinen Sitzungszustand.
- Datenformate — meistens JSON oder XML.
REST APIs werden in mobilen Anwendungen, Web-Frontends, Microservices und Systemintegrationen verwendet. In Java ist das beliebteste Framework zur Erstellung von REST APIs Spring Boot — es bietet vorgefertigte Annotationen und automatische Konfiguration.
2. Vorbereitung des Spring Boot Projekts
Zunächst benötigen Sie:
- JDK 17 oder höher
- IntelliJ IDEA oder eine andere IDE
- Maven oder Gradle
Erstellen wir ein Projekt mit Spring Initializr. Wählen Sie:
- Project: Maven
- Language: Java
- Spring Boot: 3.2.0 (oder die neueste stabile Version)
- Dependencies: Spring Web, Spring Boot DevTools
Klicken Sie auf "Generate" und entpacken Sie das Archiv. Öffnen Sie das Projekt in der IDE. Die Struktur wird wie folgt aussehen:
rest-api-demo/├── src/main/java/com/example/restapidemo/│ ├── RestApiDemoApplication.java│ └── controller/│ └── UserController.java├── src/main/resources/│ └── application.properties└── pom.xml3. Erstellung des Datenmodells und des Controllers
Erstellen wir ein einfaches Modell User (Klasse im Paket model):
package com.example.restapidemo.model;
public class User { private Long id; private String name; private String email;
public User() {}
public User(Long id, String name, String email) { this.id = id; this.name = name; this.email = email; }
// Getter und Setter public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}Jetzt erstellen wir den Controller UserController im Paket controller. Dies ist das Herzstück unserer API:
package com.example.restapidemo.controller;
import com.example.restapidemo.model.User;import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;import java.util.List;import java.util.concurrent.atomic.AtomicLong;
@RestController@RequestMapping("/api/users")public class UserController {
private final List<User> users = new ArrayList<>(); private final AtomicLong counter = new AtomicLong();
public UserController() { // Testdaten users.add(new User(counter.incrementAndGet(), "Alice", "alice@example.com")); users.add(new User(counter.incrementAndGet(), "Bob", "bob@example.com")); }
// GET /api/users — alle Benutzer abrufen @GetMapping public List<