Eine RESTful API (Representational State Transfer) ist ein API-Design, das den Prinzipien von REST folgt. REST ist ein Architekturstil für verteilte Systeme und wurde erstmals 2000 von Roy Fielding in seiner Doktorarbeit vorgestellt. RESTful APIs ermöglichen die Interaktion zwischen verschiedenen Softwareanwendungen und Diensten und sind eine der populärsten Methoden für den Aufbau moderner Webdienste.
REST folgt einer Reihe von Grundprinzipien, die den Aufbau und die Interaktion mit APIs leiten:
RESTful APIs verwenden HTTP-Methoden, um CRUD-Operationen (Create, Read, Update, Delete) auf Ressourcen durchzuführen:
In RESTful APIs werden Daten als Ressourcen repräsentiert, auf die über URLs zugegriffen werden kann. Jede Ressource sollte durch einen eindeutigen Identifier, meistens eine URL, identifiziert werden.
Beispiel:
GET /shoppingItems
GET /shoppingItems/1
POST /shoppingItems
PUT /shoppingItems/1
DELETE /shoppingItems/1
RESTful APIs verwenden HTTP-Statuscodes, um den Erfolg oder Misserfolg einer Operation anzugeben. Einige gebräuchliche Statuscodes sind:
RESTful APIs können verschiedene Formate für den Datenaustausch verwenden. Das gebräuchlichste und weitverbreitetste Format ist jedoch JSON (JavaScript Object Notation).
JSON ist ein schlankes Datenformat, das für den Datenaustausch zwischen einem Server und einem Client optimiert ist. Es ist einfach für Menschen zu lesen und zu schreiben und einfach für Maschinen zu analysieren und zu generieren. JSON ist weitgehend sprachneutral und wird von den meisten modernen Programmiersprachen unterstützt.
Ein einfaches JSON-Beispiel, das einen Einkaufsartikel repräsentiert, könnte so aussehen:
{ "item_id": 1, "item_name": "Apple", "quantity": 5 }
In diesem Beispiel enthält das JSON-Objekt drei Schlüssel (item_id
, item_name
, quantity
) und ihre zugehörigen Werte.
In einer RESTful API werden JSON-Objekte häufig als Request- oder Response-Body verwendet. Zum Beispiel könnte ein POST-Request zum Hinzufügen eines neuen Benutzers den JSON-Body verwenden, um die Benutzerdaten zu übermitteln. Ebenso könnte die API-Antwort auf eine GET-Anfrage ein JSON-Objekt oder -Array mit den angeforderten Daten enthalten.