RESTful API

Agilität, Software Engineering, Webdesign

RESTful API

REST-API Übersicht

Was ist eine REST-API?

Das REST- oder RESTful-API-Design wurde von Dr. Roy Fielding in seiner abgeschlossenen Doktorarbeit (2000) an der Universität in Kalifornien definiert.

REST-API steht für „Representational State Transfer – Application Programming Interface“ und beschreibt eine Programmierschnittstelle, die sich an den Paradigmen und Verhalten des World Wide Web (WWW) orientiert. REST definiert einen Ansatz für die Kommunikation zwischen Client und Server und kann daher als Architekturmodell für die Implementation von vernetzten Systemen betrachtet werden.

Über Gateways können verschiedene Applikationen angebunden werden:

  • Mobile Applikation
  • Desktopanwendung
  • Webapplikation

In der nachfolgenden Abbildung ist eine REST-API Architektur dargestellt:

REST-API Architektur
REST-API Architektur

Umsetzung per HTTP
Mit REST kann ein Client eine Ressource unter Verwendung einer eindeutigen URL referenzieren.

Die Schnittstellen werden mit den üblichen vier Methoden realisiert, welche das HTTP-Protokoll zur Verfügung stellt:

HTTP POSTInformationen erstellen (Create)
HTTP GETInformationen abfragen (Read)
HTTP PUTInformationen aktualisieren (Update)
HTTP DELETEInformationen löschen (Delete)

Die nachfolgende Abbildung veranschaulicht eine HTTP GET-Anfrage:

HTTP-Übersicht
HTTP-Übersicht (GET-Anfrage)

Merkmale einer REST Anwendung

Der REST Architekturstil kennzeichnet sich mit folgenden Merkmalen.

Client-Server-Modell
Die Kommunikation erfolgt auf Abruf. Der Client ist aktiv und fordert vom passiven Server eine Repräsentation an, bzw. modifiziert eine Ressource.

Einheitliche Schnittstelle
Die Ressourcen (Objekte der Anwendung) besitzen eine ihnen zugeordnete URI, mit der sie adressiert werden können.
Die Repräsentation einer Ressource kann als Dokument vom Client angefordert werden.
Die Repräsentationen können auf weitere Ressourcen verweisen, die ihrerseits wieder Repräsentationen liefern, die wiederum auf Ressourcen verweisen können.

Zustandslosigkeit
Der Server verfolgt keinen Clientstatus (Zustandslos). Jede Anfrage an den Server muss alle Informationen beinhalten, welche zum Interpretieren der Anfrage notwendig sind.

Caching
Caches werden unterstützt. Der Server kann seine Antwort als Cache-fähig oder nicht Cache-fähig kennzeichnen.

Literatur & Links