HomeBlogDie 5 grundlegenden HTTP-Methoden in RESTful APIs
API-Grundlagen

Die 5 grundlegenden HTTP-Methoden in RESTful APIs

Die wichtigsten HTTP-Methoden (idempotent und nicht idempotent), die in der REST-API-Entwicklung verwendet werden

HTTP Methods

Der REST-Ansatz ist einer der am weitesten verbreiteten bei der Gestaltung und Entwicklung von Web-APIs. Innerhalb der auf HTTP basierenden REST-Architektur erfolgen Operationen durch spezifische „Verben“, die als HTTP-Methoden bekannt sind und die Interaktion mit Ressourcen ermöglichen.

Die 5 gebräuchlichsten HTTP-Methoden bei der Entwicklung von RESTful-APIs sind GET, PUT, DELETE, POST und PATCH: Diese grundlegenden „Verben“ ermöglichen die sogenannten CRUD-Operationen (Create, Read, Update, Delete), also das Erstellen, Lesen, Aktualisieren und Löschen von Ressourcen.

REST-APIs: Was sie sind

REST-APIs oder RESTful-APIs sind solche, die den Prinzipien des Representational State Transfer (REST) folgen – einem Architekturstil, der im Jahr 2000 vom Informatiker Roy Fielding definiert wurde. Dieser sieht unter anderem die klare Trennung von Client und Server, die Verwendung einheitlicher Schnittstellen und eine geschichtete Struktur vor, in der jede Ebene ihre eigene Verantwortung hat.

Wenn über eine REST-API eine Anfrage gestellt wird, überträgt diese nicht die eigentliche Ressource an den Client, sondern eine Repräsentation ihres Zustands, die jedoch ausreicht, um die Anfrage zu erfüllen.

Um als RESTful zu gelten, muss eine API folgende Prinzipien einhalten:

  • Zustandslose Client-Server-Kommunikation: jede Anfrage ist unabhängig, es werden keine Informationen gespeichert;

  • Möglichkeit der Zwischenspeicherung von Daten (Caching);

  • Einheitliche Schnittstelle: Ressourcen müssen identifizierbar sein und von den an den Client gesendeten Repräsentationen getrennt bleiben und durch diese manipulierbar sein;

  • Geschichtetes System, das Server in präzise, für den Client unsichtbare Hierarchien organisiert.

Die Anwendung dieser Konzepte ermöglicht die Entwicklung schneller, leichtgewichtiger und skalierbarer APIs und bildet heute die Grundlage der Web-API-Entwicklung.

Die Rolle der HTTP-Methoden in RESTful-APIs

In einer RESTful-API-Anfrage kann die Information (also die Repräsentation der Ressource) in verschiedenen Formaten übertragen werden, z.?B. JSON oder HTML. Die Kommunikation erfolgt jedoch immer über eine HTTP-Anfrage.

HTTP-Methoden sind besonders wichtige Bestandteile jeder REST-API, da sie dem Client erlauben, die auszuführende Aktion auf der Ressource zu spezifizieren und somit mit ihr zu interagieren. Auch als HTTP-„Verben“ bekannt, sind sie in jeder RESTful-API-Anfrage enthalten und ermöglichen dem Client, CRUD-Aktionen (Create, Read, Update, Delete) auf standardisierte und vorhersehbare Weise durchzuführen.

In einer REST-API-Architektur werden sowohl idempotente HTTP-Methoden wie GET und PUT verwendet, die einen effizienten und fehlertoleranten Webdienst ermöglichen, als auch nicht idempotente Methoden. Der Unterschied ist wesentlich: Mit idempotenten Methoden führen mehrere Anfragen mit denselben Parametern zum gleichen Ergebnis wie eine einzige Anfrage – ohne zusätzliche Wirkungen auf den Server. Nicht idempotente „Verben“ wie POST und PATCH hingegen können den Serverzustand verändern und unerwünschte Nebeneffekte wie das Erstellen unerwünschter Ressourcen verursachen.

Die 5 grundlegenden HTTP-Methoden in RESTful-APIs

Zu den am häufigsten verwendeten HTTP-Methoden in REST-APIs gehören GET, PUT, DELETE, POST und PATCH, mit denen der Client eine Ressource lesen, erstellen, löschen oder verändern kann:

  • GET: ist die gebräuchlichste Methode bei API-Anfragen. Sie fordert eine Ansicht der Daten vom Server an und ist idempotent: dieselbe Anfrage mehrmals auszuführen liefert dieselbe Repräsentation und verändert den Serverzustand nicht;

  • PUT: aktualisiert eine bestehende Ressource, indem deren gesamter Inhalt ersetzt wird, oder erstellt eine neue Ressource. Sie wird vor allem zur Aktualisierung genutzt, kann beim Erstellen jedoch versehentlich Ressourcen erzeugen;

  • DELETE: löscht eine Ressource. Sie kann als idempotent gelten, kann aber die URL der gelöschten Ressource weiterhin verfügbar lassen, was zu Inkonsistenzen bei späteren Serverantworten führen kann;

  • POST: ist die einzige Methode, die vor allem auf Ressourcensammlungen wirkt. Sie dient dazu, eine untergeordnete Ressource mit einer URL innerhalb einer Sammlung zu erstellen und dieser eine präzise Hierarchie zuzuweisen. Sie ist nicht von Natur aus idempotent: jede Anfrage kann potenziell eine neue Ressource erzeugen;

  • PATCH: wie PUT, dient zur Aktualisierung von Ressourcen. Sie verändert den Inhalt teilweise anhand standardisierter Formate wie JSON und XML. Mehrfache PATCH-Anfragen mit demselben Inhalt können zu unterschiedlichen Zuständen führen – daher ist sie nicht idempotent (kann jedoch so verwendet werden, dass sie idempotent ist).

Nur idempotente Methoden gelten als sicher, da sie den Serverzustand nicht beeinflussen und die Auswirkungen von Client-Operationen auf den Server vorhersehbar machen. Auch nicht idempotente Methoden wie POST und PATCH können jedoch sicher eingesetzt werden, wenn geeignete Authentifizierungs-, Autorisierungs- und API-Management-Systeme implementiert sind.

Weitere HTTP-Methoden für die API-Entwicklung

Neben den fünf beschriebenen HTTP-Methoden, die mit CRUD-Operationen verbunden sind, gibt es weitere nützliche Methoden für die Entwicklung von RESTful-APIs. Diese verändern den Zustand der Ressource nicht, erlauben jedoch wichtige Aktionen wie die Überprüfung ihres Zustands oder das Nachvollziehen einer Anfrage:

  • HEAD: dient zur Abfrage von Metadaten einer Ressource, z.?B. um Größe oder Zustand zu prüfen, bevor eine andere Anfrage gestellt wird;

  • OPTIONS: gibt eine Liste der von der Ressource unterstützten Methoden zurück und zeigt so, welche Aktionen auf ihr möglich sind;

  • TRACE: kann als Debugging-Werkzeug verwendet werden, da es dem Client erlaubt, zu sehen, wie seine Anfrage von zwischengeschalteten Servern verändert wird. Es verändert den Serverzustand nicht, ist jedoch heikel, da es sensible Daten offenlegen kann. Es gibt sogar eine Art von Cyberangriff – Cross-Site Tracing (XST) –, der ausschließlich auf dieser HTTP-Methode basiert.

HTTP-Methoden sind eine der grundlegenden Säulen der RESTful-API-Entwicklung: Durch die standardisierte und vorhersehbare Definition von Operationen machen sie APIs interoperabel und erleichtern deren Integration in Anwendungen. Die Nutzung von Standards macht APIs zudem intuitiver und einfacher in der Anwendung für den Client.

Die 5 grundlegenden HTTP-Methoden in RESTful APIs
Teilen auf