Was ist eine REST API? Der Schlüssel zu flexibler Systemintegration
Inhaltsverzeichnis
Fangen wir mit der definitorischen Frage an und betrachten den hinteren Begriffsteil:
Das Kürzel API steht für application programming interface. Im Deutschen spricht man sinngemäß von einer Programmierschnittstelle. Sie dient der Anbindung von anderen Programmen an ein Softwaresystem. Daten werden dabei auf Quelltext-Ebene ausgetauscht.
REST steht für representational state transfer. Wir werden noch erklären, was das genau bedeutet. Fürs Erste genügt es, sich zu merken, dass eine REST API als Schnittstelle zwischen verteilten Systemen fungiert.
Digital Asset Management (kurz DAM) – so lautet die Fachbezeichnung für das Verwalten von digitalen Medien wie Fotos und Videos. Wir werden in diesem Beitrag auch auf die Möglichkeiten eingehen, die eine REST API bei der Integration von DAM-Systemen bietet.
Für welche Zwecke wird eine REST API eingesetzt?
REST APIs nutzen das bekannte HTTP-Protokoll und werden für Webservices eingesetzt, die den automatisierten Informationsaustausch zwischen Netzwerkanwendungen erfordern.
Ein Onlinedienst wie ein Webshop kann über eine REST API z.B. an das PIM– oder Warenwirtschaftssystem eines Unternehmens angebunden werden. Ein weiteres Beispiel wäre die Integration einer SharePoint-Instanz, um das Remote-Arbeiten an bestimmten Dateien zu ermöglichen.
Die einzelnen Systeme und Anwendungen können dabei unterschiedlich aufgebaut sein und je eigene Datenformate und -strukturen besitzen. Die Aufgabe der REST API besteht dann darin, eine standardisierte Form der Kommunikation zwischen diesen Systemen herzustellen.
6 Prinzipien einer REST API
Der REST-Standard basiert auf sechs Prinzipien, die unten aufgeführt sind. Sie gehen auf den Informatiker Roy Fielding zurück, der sie im Jahr 2000 erstmals vollumfänglich beschrieb. Eine API, bei der alle obligatorischen Prinzipien umgesetzt wurden, bezeichnet man auch als RESTful. Prinzip 6 (Code-on-Demand) gilt als optional.
1. Client-Server-Architektur
Die vorausgesetzte Trennung von Client (Dienstnutzer) und Server dient der Aufgabenverteilung. Praktisch heißt das, dass über die Benutzeroberfläche einer Software Dienste angefragt werden, die ein Server bereitstellt (z.B. ein Datenbank-Server). Dadurch ist es leichter, das System zu skalieren, denn beide Komponenten können unabhängig voneinander weiterentwickelt werden.
2. Zustandslosigkeit
Anfragen von einem Client müssen alle Informationen enthalten, die der Server benötigt, um diese verarbeiten zu können. Der Server darf keine Zustandsdaten über den Client speichern. Das sorgt ebenfalls für Skalierbarkeit, da eingehende Anfragen auf beliebige Maschinen verteilt werden können.
3. Cache-Fähigkeit
Häufig vorkommende Antworten eines Servers sollten zwischenspeicherbar sein, um diesen nicht unnötig zu belasten. Für die Daten im Zwischenspeicher (Cache) muss aber definiert sein, wie lange sie vorgehalten werden sollen. Dies ist erforderlich, damit der Client keine veralteten Informationen erhält.
4. Einheitliche Schnittstelle
Die Interaktion zwischen Client und Server erfolgt gemäß einheitlicher Standards, die auf vier Bedingungen beruhen:
- Adressierbarkeit von Ressourcen: Eine Server-Ressource kann verschiedenste Daten beinhalten, sie muss aber über eine URL eindeutig adressierbar sein.
- Repräsentationen zur Veränderung von Ressourcen: Clients können mit Ressourcen über Repräsentationsformate wie JSON oder XML interagieren. Solche Formate enthalten alle nötigen Informationen zum Verändern oder Löschen einer Ressource.
- Selbstbeschreibende Nachrichten: Nachrichten müssen die für die Interpretation durch einen Client oder Server notwendigen Informationen bereits enthalten.
- HATEOAS (Hypermedia as the Engine of Application State): Dies bedeutet, dass Clients mit Hilfe von Links, die in die Server-Antworten eingebettet sind, dynamisch durch Anwendungsressourcen navigieren können.
5. Mehrschichtige Systeme
Anfragen müssen durch unabhängige Netzwerkschichten wie Proxyserver oder Load Balancer geleitet werden können. Der Client- oder Servercode soll dabei nicht verändert werden. Solche Zwischenschichten können die Leistung und Sicherheit eines Systems stark verbessern.
6. Code-on-Demand (optional)
Dieses Prinzip besagt, dass der Server im Bedarfsfall Code zur lokalen Ausführung an den Client übertragen darf.
Die Bedeutung von REST
Nun sind wir auch so weit, um dem Begriff representational state transfer Sinn zu verleihen. Er beschreibt den Übergang vom aktuellen zum nächsten Zustand einer Anwendung. Dieser Zustandsübergang erfolgt durch den Transfer von Repräsentationsdaten, auf die mittels standardisierter HTTP-Methoden zugegriffen wird. Man nennt diese Methoden auch HTTP-Verben. Die fünf wichtigsten davon werden wir daher im nächsten Abschnitt erläutern.
Die 5 wichtigsten HTTP-Methoden
- GET – Fordert eine angegebene Ressource vom Server an. Der Zustand am Server wird dabei nicht verändert. GET ist die meistgenutzte HTTP-Methode, da sie auch für das Abrufen von Webseiten im Internet benötigt wird.
- POST – Fügt eine neue Ressource unterhalb der angegebenen ein. Als Ergebnis wird der neue Ressourcenlink zurückgegeben. POST wird z.B. für Formulareingaben oder das Hochladen von Dateien genutzt.
- PUT – Die angegebene Ressource wird angelegt. Wenn die Ressource bereits existiert, wird sie geändert. Der PUT-Befehl ist also wichtig, wenn Inhalte aktualisiert werden müssen.
- DELETE – Löscht die angegebene Ressource.
- HEAD – Fordert Metadaten zur angegebenen Ressource an.
Funktionsskizze einer REST API
Praxisbeispiel: Zugriff aufs DAM per REST API
Plattformen für Digital Asset Management (DAM) ermöglichen es Unternehmen, ihre digitalen Inhalte wie Bilder, Videos oder Dokumente effizient zu speichern, zu organisieren und zu verteilen. Um diese Inhalte (Ressourcen) in andere Anwendungen zu integrieren, kann es sinnvoll sein, eine REST API zu nutzen.
Szenario: Abruf und Integration eines Bildes in Website
Folgendes sei angenommen:
-
- Sie möchten ein Bild von einer DAM-Plattform in eine Webseite integrieren.
- Die DAM-Plattform bietet eine REST API für den Zugriff auf bestehende Ressourcen an.
Nun bedarf es dieser vier Schritte, um die Integration eines Bildes durchzuführen:
Schritt 1: Zunächst muss die Ressource identifiziert werden. Dies geschieht über eine URL. Diese könnte beispielsweise so aussehen: https://mediahub.ai/api/File/Original/19b6da72-c3b5-40a1-ba63-c7d24a678721/REST-API.jpg
Schritt 2: Nun kann eine HTTP-Methode auf die Ressource (in dem Fall eine Rastergrafik) angewendet werden. Um diese abzurufen, wird eine GET-Anfrage gesendet, die die obige URL enthält. Solche Anfragen können über ganz verschiedene Tools (cURL, Postman etc.), Shells (z.B. PowerShell), Webbrowser oder Programmiersprachen erfolgen.
Schritt 3: Nach Verarbeitung der Anfrage sendet die DAM-Plattform eine HTTP-Antwort, bei der ein Repräsentationsformat wie JSON oder XML dafür sorgt, dass das angeforderte Bild per Link oder als direkter Datenstrom bereitgestellt wird.
Schritt 4: Nach dem Empfang der Antwort kann der Link oder Datenstrom so genutzt werden, dass das von der DAM-Plattform stammende Bild auf einer Webseite angezeigt wird.
Vorteile einer REST API im DAM-Bereich
-
- Flexibilität: Entwickler können die DAM-Inhalte auf vielfältige Weise nutzen und in verschiedene Anwendungen integrieren.
- Skalierbarkeit: REST APIs sind zustandslos, was sie ideal für skalierbare Anwendungen macht.
- Einfache Integration: Da REST auf HTTP basiert, können Entwickler mit Standard-Webentwicklungstools und -sprachen auf DAM-Inhalte zugreifen.
- Unabhängigkeit: REST APIs sind plattform- und sprachunabhängig, was für maximale Kompatibilität sorgt.
Fazit
Zusammengefasst ist eine REST API also eine leistungsfähige und flexible Programmierschnittstelle für Netzwerkanwendungen. Sie wird daher meist verwendet, um verschiedene Softwaresysteme über das Internet zu verbinden. Durch den Einsatz standardisierter HTTP-Methoden kann die Kommunikation dabei einfach und effizient gehalten werden.
Auch im DAM-Bereich ermöglichen REST APIs die Integration von digitalen Inhalten in verschiedenste Anwendungen und Dienste. Dank solcher Integrationen können Endanwender direkt aus ihrer favorisierten Anwendung heraus auf den Medienbestand ihrer Organisation zugreifen. Das beschleunigt nicht nur den Workflow, sondern erleichtert auch das kollaborative Arbeiten.
Testen Sie den Media Hub von teamnext
Der teamnext | Media Hub ist eine cloudbasierte DAM-Lösung, die nahtlos an bestehende Systeme angebunden werden kann. Mit unserer flexiblen REST API können wir auch individuelle Wünsche realisieren und die Anwendung Ihrer Wahl mit dem Media Hub verbinden. Sprechen Sie uns einfach auf die Möglichkeit einer maßgeschneiderten API-Integration an.
Außerdem zeichnet sich der Media Hub durch innovative KI-Funktionen aus und wird gleichzeitig höchsten Ansprüchen an Datensicherheit gerecht. Er wird daher von mittelständischen Unternehmen der DACH-Region wie auch von großen Organisationen innerhalb der EU bevorzugt. Weitere Infos zum Produkt finden Sie hier: teamnext.de/produkt
Falls Sie nach dieser Lektüre unsere Lösung einfach mal ausprobieren möchten, dann können Sie quasi sofort loslegen, indem Sie eine kostenlose 14-tägige Testphase starten. Zudem können Sie jederzeit einen Termin für eine kostenlose Online-Produktdemo mit einem unserer Experten buchen. Benutzen Sie hierfür einfach unser Kontaktformular.