Was ist REST?

  • Beitrags-Autor:
  • Beitrags-Kategorie:Java

REST ist ein Architekturstil für Web-APIs. REST steht für Representational State Transfer.

Der Name klingt komplizierter, als das Thema am Anfang wirklich ist. Für Einsteiger reicht erst einmal dieses Verständnis:

REST beschreibt eine Art, wie Systeme über das Web sauber und nachvollziehbar miteinander kommunizieren.

Wenn Entwickler von einer REST API sprechen, meinen sie meistens eine API, die über HTTP erreichbar ist und klar definierte Regeln bei Requests und Responses nutzt.

Warum ist REST so wichtig?

REST ist in der Praxis extrem verbreitet.

Sehr viele moderne Anwendungen nutzen REST APIs, zum Beispiel:

  • Webanwendungen
  • Mobile Apps
  • Java Backends
  • Microservices
  • Cloud-Dienste
  • Integrationen zwischen verschiedenen Systemen

Wenn ein Frontend Daten aus einem Backend lädt, passiert das oft über REST. Wenn ein Java-Programm mit einem externen Dienst spricht, passiert das sehr häufig ebenfalls über REST.

API und REST, was ist der Unterschied?

Das ist einer der wichtigsten Punkte.

  • API ist der Oberbegriff
  • REST ist eine bestimmte Art von API

Das bedeutet:

  • jede REST API ist eine API
  • aber nicht jede API ist eine REST API

Wenn dir der API-Begriff noch nicht ganz klar ist, passt vorher oder parallel der Artikel Was ist eine API?.

Die Grundidee hinter REST

REST nutzt in der Regel das HTTP-Protokoll, also genau das Protokoll, das auch dein Browser beim Laden von Websites verwendet.

Statt aber HTML-Seiten zurückzugeben, liefert eine REST API oft strukturierte Daten zurück, meistens im JSON-Format.

Die Grundidee ist:

  • ein Client stellt eine Anfrage
  • die Anfrage geht an eine URL
  • die URL steht für eine Ressource
  • der Server antwortet mit Daten oder einer Bestätigung

Was ist eine Ressource?

In REST dreht sich vieles um sogenannte Ressourcen.

Eine Ressource kann zum Beispiel sein:

  • ein Benutzer
  • ein Produkt
  • eine Bestellung
  • ein Blogbeitrag
  • ein Rezept

Beispiele für Ressourcen-URLs:

  • /users
  • /users/5
  • /products
  • /orders/42

Die URL zeigt also oft direkt, auf welches Objekt oder welche Sammlung zugegriffen wird.

Die wichtigsten HTTP-Methoden

REST APIs arbeiten oft mit bestimmten HTTP-Methoden. Die wichtigsten für Einsteiger sind:

GET

Mit GET werden Daten gelesen.

Beispiel:

  • GET /users
  • GET /users/5

Bedeutung:

  • gib mir alle Benutzer
  • gib mir den Benutzer mit der ID 5

POST

Mit POST werden meist neue Daten angelegt.

Beispiel:

  • POST /users

Bedeutung:

  • lege einen neuen Benutzer an

PUT

Mit PUT werden bestehende Daten oft komplett ersetzt oder aktualisiert.

Beispiel:

  • PUT /users/5

Bedeutung:

  • aktualisiere den Benutzer mit der ID 5

DELETE

Mit DELETE werden Daten gelöscht.

Beispiel:

  • DELETE /users/5

Bedeutung:

  • lösche den Benutzer mit der ID 5

Ein einfaches REST-Beispiel

Stell dir einen kleinen Online-Shop vor.

Dann könnten diese Aufrufe sinnvoll sein:

  • GET /products -> alle Produkte laden
  • GET /products/7 -> ein Produkt laden
  • POST /products -> neues Produkt anlegen
  • PUT /products/7 -> Produkt aktualisieren
  • DELETE /products/7 -> Produkt löschen

Das ist das Grundmuster, das du bei sehr vielen REST APIs wiederfindest.

Request und Response bei REST

REST basiert auf dem gleichen Grundprinzip wie jede andere Web-API:

  • der Client schickt einen Request
  • der Server liefert eine Response zurück

Ein Request enthält oft:

  • URL
  • HTTP-Methode
  • Header
  • optional Daten im Body

Eine Response enthält oft:

  • Statuscode
  • Header
  • Daten im Body

Wichtige Statuscodes bei REST APIs

Ein paar Statuscodes solltest du früh kennen:

  • 200 -> Anfrage erfolgreich
  • 201 -> neues Objekt erfolgreich erstellt
  • 400 -> fehlerhafte Anfrage
  • 401 -> nicht eingeloggt oder nicht autorisiert
  • 404 -> Ressource nicht gefunden
  • 500 -> Fehler auf dem Server

Diese Codes helfen dir dabei, Responses besser zu verstehen.

REST-Beispiel in Java

Hier ein kleines Java-Beispiel mit HttpClient. Der Code ruft eine öffentliche REST API auf und lädt einen Beispiel-Post.

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class RestExample {

    public static void main(String[] args) throws IOException, InterruptedException {
        HttpClient client = HttpClient.newHttpClient();

        HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://jsonplaceholder.typicode.com/posts/1"))
                .GET()
                .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        System.out.println("Statuscode: " + response.statusCode());
        System.out.println("Body: " + response.body());
    }
}

Was zeigt dieses Beispiel?

Das Beispiel zeigt:

  • Java schickt einen GET-Request
  • eine REST API antwortet
  • die Antwort kommt als JSON zurück
  • der Statuscode zeigt, ob der Aufruf erfolgreich war

Wenn du JSON noch nicht sauber eingeordnet hast, passt dazu direkt der Folgeartikel Was ist JSON?.

Warum ist JSON bei REST so häufig?

REST schreibt nicht zwingend JSON vor.

Trotzdem ist JSON in der Praxis sehr häufig, weil es:

  • leicht lesbar ist
  • leicht übertragbar ist
  • in vielen Programmiersprachen gut verarbeitet werden kann

Deshalb sieht man REST und JSON oft zusammen.

Ist REST immer gleich aufgebaut?

Nein. Nicht jede REST API sieht exakt gleich aus.

Aber viele folgen ähnlichen Mustern:

  • klar benannte Ressourcen
  • HTTP-Methoden mit klarer Bedeutung
  • Statuscodes zur Rückmeldung
  • JSON als Datenformat

Typische Missverständnisse

„REST ist einfach nur irgendein API-Aufruf“

Nicht ganz. REST ist ein bestimmter Stil, wie APIs aufgebaut werden.

„GET, POST, PUT und DELETE sind nur technische Details“

Nein. Diese Methoden sind zentral, weil sie die Absicht des Requests ausdrücken.

„REST bedeutet automatisch einfache Entwicklung“

Nicht unbedingt. REST macht vieles strukturierter, aber gute API-Designs brauchen trotzdem saubere Planung.

„REST und JSON sind dasselbe“

Nein. REST ist ein Stil für APIs. JSON ist ein Datenformat.

REST im Alltag eines Java-Entwicklers

REST begegnet dir als Java-Entwickler an vielen Stellen:

  • externe APIs aufrufen
  • eigene Backends mit Spring Boot bauen
  • Frontend und Backend verbinden
  • Daten an andere Systeme senden
  • Integrationen mit Cloud- oder Enterprise-Systemen umsetzen

Gerade für moderne Backend-Entwicklung ist REST ein Grundthema.

REST, OData und andere API-Stile

REST ist sehr verbreitet, aber nicht die einzige Variante.

Es gibt auch:

  • SOAP
  • GraphQL
  • OData

Gerade OData ist später spannend, wenn es um SAP-nahe oder datengetriebene Systeme geht. Aber vorher solltest du REST sauber verstehen.

Fazit

REST ist ein weit verbreiteter Stil für Web-APIs.

Das Wichtigste für den Einstieg ist:

  • Ressourcen über URLs ansprechen
  • mit HTTP-Methoden arbeiten
  • Daten per Request schicken oder per Response empfangen
  • Statuscodes richtig einordnen

Wenn du dieses Grundprinzip verstanden hast, kannst du moderne APIs deutlich besser lesen, nutzen und später auch selbst bauen.

Nächster Schritt

Nach diesem Artikel sind diese Themen sinnvoll: