Einleitung: REST API mit Java – einfacher als gedacht
Die Entwicklung von REST APIs ist eine der gefragtesten Fähigkeiten in der modernen Backend-Entwicklung. Java bleibt aufgrund seiner Zuverlässigkeit und des riesigen Ökosystems der Marktführer für die Erstellung industrieller APIs. Viele Anfänger denken, dass das Schreiben einer REST API in Java schwierig und zeitaufwendig ist. In Wirklichkeit können Sie mit dem richtigen Tool (Spring Boot) in 30 Minuten einen funktionierenden Dienst erstellen.
In diesem Artikel werden wir praktisch durchgehen, wie man schnell eine vollwertige REST API in Java erstellt. Wir werden eine kleine Anwendung zur Verwaltung einer Bücherliste schreiben, die standardmäßige CRUD-Operationen unterstützt: Erstellen, Lesen, Aktualisieren und Löschen von Einträgen. Der gesamte Code ist ausführungsbereit, und Sie können ihn über Postman oder den Browser testen.
1. Projektvorbereitung und Einrichtung von Spring Boot
Der schnellste Weg, ein Projekt zu erstellen, ist die Verwendung von Spring Initializr. Dies ist der offizielle Generator, der ein Projektgerüst mit den benötigten Abhängigkeiten erstellt.
1.1. Projekterzeugung
Gehen Sie zu start.spring.io und wählen Sie:
- Project: Maven (oder Gradle)
- Language: Java
- Spring Boot: neueste stabile Version (z.B. 3.2.x)
- Group: com.example
- Artifact: bookapi
Fügen Sie Abhängigkeiten hinzu:
Spring Web– zum Erstellen von REST-ControllernSpring Data JPA– für die Arbeit mit der DatenbankH2 Database– eingebettete Datenbank für Tests
Klicken Sie auf "Generate", laden Sie das Archiv herunter und entpacken Sie es. Öffnen Sie das Projekt in IntelliJ IDEA oder einer anderen IDE.
1.2. Projektstruktur
Nach dem Öffnen des Projekts sehen Sie die folgende Struktur:
bookapi/├── src/│ ├── main/│ │ ├── java/com/example/bookapi/│ │ │ ├── BookapiApplication.java│ │ │ ├── controller/│ │ │ ├── model/│ │ │ └── repository/│ │ └── resources/│ │ └── application.properties│ └── test/└── pom.xmlErstellen Sie die Pakete controller, model und repository manuell – das erleichtert die Navigation.
2. Erstellung des Datenmodells und des Repositorys
Beginnen wir mit dem Modell – einer Klasse, die die Entität "Buch" beschreibt.
2.1. Klasse Book (Model)
Erstellen Sie die Datei Book.java im Paket model:
package com.example.bookapi.model;
import jakarta.persistence.*;
@Entity@Table(name = "books")public class Book {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
@Column(nullable = false) private String title;
@Column(nullable = false) private String author;
private int year;
public Book() {}
public Book(String title, String author, int year) { this.title = title; this.author = author; this.year = year; }
// Getter und Setter public Long getId() { return id; } public void setId(Long id) { this.id = id; }
public String getTitle() { return title; } public void setTitle(String title) { this.title = title; }
public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; }
public int getYear() { return year; } public void setYear(int year) { this.year = year; }}2.2. Repository
Erstellen Sie das Interface BookRepository.java im Paket repository:
package com.example.bookapi.repository;
import com.example.bookapi.model.Book;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;
import java.util.L