Egal ob Online-Banking, soziale Netzwerke oder Plattformen – APIs sind das unsichtbare Rückgrat überall dort, wo Daten zwischen verschiedenen Systemen fließen. Ohne sie gäbe es keine nahtlosen Verbindungen zwischen Apps, keine Online-Zahlungen und keine personalisierten Streaming-Empfehlungen. Doch nicht jede API ist gleich in Aufbau und Ablauf: Manche sind blitzschnell, andere hochsicher, und einige sind besonders flexibel. Die Architektur einer API entscheidet, wie effizient, sicher und skalierbar sie ist.
In diesem Artikel erfährst du, was eine API-Architektur ist, aus welchen Komponenten sie besteht, welche Arten von API-Architekturen es gibt und welche Protokolle und Formate für die Kommunikation verwendet werden.
Was ist eine API-Architektur?
Eine API-Architektur bildet den Rahmen für das API-Design und beschreibt die Struktur, Regeln, Protokolle und Methoden, mit denen ein Application Programming Interface (API oder Anwendungsprogrammierschnittstelle) aufgebaut ist und funktioniert. Sie legt fest, wie verschiedene Softwareanwendungen und Systeme miteinander kommunizieren, welche Daten sie austauschen und auf welche Weise dies geschieht.
Verschiedene Schnittstellenarchitekturen eignen sich dabei je nach Anforderung für unterschiedliche Einsatzbereiche, abhängig davon, ob beispielsweise die Sicherheit und Genauigkeit der Daten (Banktransfer), die Geschwindigkeit der Datenübertragung (Streaming) oder die Aktualität der Daten (Chat) eine wichtigere Rolle spielt.
Die 9 Komponenten der API-Architektur.
API-Architekturen setzen sich aus mehreren Komponenten zusammen, die zusammenarbeiten, um reibungslose Kompatibilität und Interoperabilität zwischen verschiedenen Applikationen zu ermöglichen. Diese Komponenten sind entscheidend für die Funktionalität und Effektivität einer Schnittstelle.
1. Client und Server.
Ein Client ist ein Gerät oder eine Software, die eine Anfrage an einen Server sendet, um Daten oder Dienste zu nutzen. Der Server verarbeitet die Anfrage und sendet eine Antwort zurück.
- Beispiele: Typische Clients sind Webbrowser, die Webseiten von einem Webserver anfordern, oder E-Mail-Programme, die E-Mails von einem Mail-Server abrufen.
2. Endpunkte (Endpoints).
API-Endpoints sind spezifische Pfade oder URLs, die als Zugänge für bestimmte Funktionen dienen. Über einen Endpoint kann ein Client API-Anfragen senden und somit bestimmte Daten, Funktionen oder Ressourcen abrufen.
- Beispiele: Eine Wetter-API bietet die URL https://www.wettertest.de/wetter?stadt=muenchen für den Abruf des aktuellen Wetters in München. Für die Wettervorhersage stellt sie den Endpoint https://www.wettertest.de/vorhersage?stadt=muenchen zur Verfügung.
3. HTTP-Methoden.
APIs nutzen verschiedene HTTP-Methoden wie GET, POST, PUT und DELETE, um verschiedene Arten von Operationen zu kennzeichnen. GET dient beispielsweise dazu, Daten abzurufen, während POST zum Erstellen neuer Datensätze verwendet wird.
- Beispiel: Ein Webmail-Dienst könnte eine Anfrage senden wie GET https://www.emailtest.de/emails?inbox=true, um eine Liste der empfangenen E-Mails vom Mail-Server abzurufen.
4. Datenformate.
Schnittstellen legen spezifische Formate für Anfragen und Antworten fest. Häufig werden Datenformate wie JSON (JavaScript Object Notation) oder XML (Extensible Markup Language) verwendet, um Daten zu strukturieren und den Austausch zwischen Client und Server zu erleichtern.
5. Parameter.
Parameter sind zusätzliche Informationen, die in einem API-Aufruf übergeben werden. Sie können verwendet werden, um die Anfrage zu spezifizieren oder zu filtern, wie beispielsweise die Rückgabe von Daten für einen bestimmten Zeitraum oder einen speziellen Benutzer.
- Beispiel: Die oben genannte URL https://www.wettertest.de/wetter?stadt=muenchen der Wetter-API enthält die Parameter wetter?stadt=muenchen, die ausgeben, welche Daten (Wetter) für welche Stadt (München) benötigt werden.
6. Header.
Im Header einer API-Anfrage werden zusätzliche Informationen übermittelt wie Authentifizierungsdaten, Content-Typ oder andere Metadaten. Diese Informationen sind oft entscheidend für die Sicherheit und Effizienz der API-Kommunikation.
7. HTTP-Statuscodes.
API-Architekturen verwenden HTTP-Statuscodes, um das Ergebnis einer Anfrage zu kommunizieren. Diese Codes kennt man beispielsweise aus dem Browsen im Internet.
- Beispiele: Der Statuscode 200 zeigt einen erfolgreichen Vorgang an, während 404 bedeutet, dass der angeforderte Endpunkt nicht gefunden wurde. Während Endnutzer den Statuscode 200 im Normalfall nicht sehen können, da z.B. die angefragte Webseite einfach geöffnet wird, gibt es für den Statuscode 404 meist dedizierte 404-Landing Pages. Diese teilen dem Nutzer mit, dass die aufgerufene Seite nicht existiert.
8. Protokolle.
Die Protokolle, die innerhalb einer API-Architektur verwendet werden, legen die Regeln und Standards für die API-Kommunikation fest.
- Beispiele: Der am häufigsten genutzte Standard für Web-APIs ist aufgrund seiner Einfachheit und Flexibilität REST (Representational State Transfer). Eine komplexere, aber sicherere Technologie ist SOAP (Simple Object Access Protocol).
9. Authentifizierung und Sicherheit.
Um den unerlaubten Zugriff auf sensible Daten zu verhindern, müssen APIs geschützt werden. Dies kann beispielsweise über API-Schlüssel oder Authentifizierungs-Token wie bei OAuth (Open Authorization) geschehen.
- Beispiel: Meldet man sich bei einer neuen App mit seinem Google-Konto an, verwendet die App OAuth, um sicher auf das Konto zuzugreifen, ohne das entsprechende Nutzerpasswort zu kennen. Die App erhält in diesem Zusammenhang statt eines Passworts ein Token, um den Access zu regeln.
Welche Arten von API Architekturen gibt es?
API-Architekturen gibt es sicherlich wie Sand am Meer, würde man jeden individuellen Use Case betrachten. Auf einer höheren Flugebene lassen sich jedoch drei Haupt-API-Architekturen herauskristallisieren:
Monolithische API Architektur.
Genau wie bei einem Monolithen als einzeln stehender, massiver Stein oder Felsen bedeutet eine monolithische API-Architektur, dass alle API-Funktionen und Komponenten innerhalb einer einzigen, großen Anwendung eingebunden sind. Die API kommuniziert dabei direkt mit einer einzigen Datenbank.
Für kleinere Systeme, die im Regelfall nur weniger Änderungen bedürfen, bietet sich die monolithische Architektur aufgrund ihrer einfachen Implementierung und Verwaltung an. Nachteile sind jedoch, dass diese Art der Architektur nur schwer skalierbar ist. Änderungen einzelner Systemkomponenten betreffen die gesamte API. Und hat eine Komponente einen Fehler oder fällt sogar ganz aus, kann das gesamte System in sich zusammenbrechen.
Ein Beispiel für eine monolithische API-Architektur aus der Praxis:
Ein Einzelhandelsunternehmen betreibt einen kleinen e-Commerce-Shop. Dabei verwaltet eine API alle Funktionen: den Aufruf des Shops, die Eingabe und Änderung von Benutzerdaten, das Anlegen eines Benutzerkontos, den Bestellprozess, Anpassungen im Lagerbestand, das Senden von Bestätigungs-E-Mails sowie Zahlungen.
Microservices API Architektur.
Im Gegensatz zu einer monolithischen Architektur wird bei einer Microservices-Architektur die API in kleinste, voneinander unabhängige Dienste – oder Microservices – aufgeteilt. Jeder Microservice kann dabei bei Bedarf Zugriff auf eine eigene Datenbank haben.
Ein großer Vorteil ist hier, dass die Services unabhängig voneinander optimiert, gewartet oder ausgetauscht werden können, ohne dass das Gesamtsystem ausfällt. Die dynamische Bauweise macht es damit flexibel und beliebig skalierbar. Dies bedeutet im Gegenzug jedoch auch einen wesentlich höheren Aufwand für Entwicklung und Verwaltung.
Ein Beispiel für eine Microservices-API-Struktur aus der Praxis:
Ein Anbieter einer Streaming-Plattform nutzt eine API, die aus vielen spezialisierten Microservices besteht, die jeweils unterschiedliche Funktionen erfüllen: die Ausgabe eines Film- und Serienkatalogs mit Informationen zu verfügbaren Titeln, ein Empfehlungssystem mit personalisierten Vorschlägen, das Videostreaming selbst, das Zahlungsmanagement, die Verwaltung von Nutzerkommentaren und Bewertungen, und vieles mehr. Der gewählte Aufbau sichert nicht nur die Performance, wenn Millionen von Nutzern gleichzeitig den Streamingdienst verwenden, sondern sorgt auch für eine hohe Fehlertoleranz.
Serverless API Architektur.
Wie der Name bereits besagt, müssen bei Serverless-Architekturen keine festen, Hardware-basierten Server-Infrastrukturen bereitgestellt werden. Alle API-Funktionen werden in der Cloud und nur bei Bedarf ausgeführt. Dabei muss der jeweilige Cloud-Anbieter dafür sorgen, dass die Infrastruktur einwandfrei funktioniert und die Performance jederzeit gewährleistet ist. Jede API-Abfrage generiert dabei Kosten, die Abrechnung erfolgt also nach der tatsächlichen Nutzung.
Gerade bei Serverless-Architekturen kommt es sehr auf den Use Case an, ob man als Unternehmen davon profitiert oder nicht. APIs in der Cloud zu haben bedeutet auf der einen Seite, dass man Zeit und Kosten für die Serververwaltung vor Ort spart und die verwendeten APIs hoch verfügbar sind, auch bei Millionen von Nutzern. Auf der anderen Seite ist man sehr vom Cloud-Anbieter abhängig und hat damit auch nur begrenzte Anpassungsmöglichkeiten.
JSON und XML: Die Sprachen der APIs.
JSON und XML sind zwei der am häufigsten verwendeten Formate für den Datenaustausch in APIs. Sie spielen eine entscheidende Rolle bei der Definition, wie Daten strukturiert und übermittelt werden.
JSON (JavaScript Object Notation).
JSON ist einfach lesbar für Mensch und Maschine. Es besteht aus sogenannten Schlüssel-Wert-Paaren, wobei der Schlüssel – oder Key – im Prinzip den Oberbegriff darstellt und bestimmt, welcher Informationswert – oder Value – ausgegeben wird.
Zudem ist JSON plattformunabhängig und kann mit vielen Programmiersprachen verwendet werden. Seine Flexibilität macht es ideal für Web-Anwendungen und Dienste, die eine schnelle und effiziente Datenübertragung erfordern.
- Beispiel: Im folgenden JSON-Code ist z.B. „name“ ein Schlüssel und „Tom“ der entsprechende Wert.
{
„name“: „Tom“,
„tier“: „Hund“
“charakter”: [“lieb”, “verspielt“]
}
XML (Extensible Markup Language).
XML bietet eine streng hierarchische Struktur für Daten mit verschachtelten Tags. Diese funktionieren in etwa wie der Schlüssel bei JSON, indem sie festlegen, welche Werte ausgegeben werden. Laien begegnet XML am häufigsten im Website-Umfeld, da Webseiten ebenfalls per XML aufgebaut sind.
Auch XML ist sowohl plattform- als auch sprachunabhängig. Zudem ermöglicht es, eigene Tags und Strukturen zu definieren, was eine hohe Anpassungsfähigkeit an unterschiedliche Bedürfnisse bietet.
- Beispiel:
<tier>
<name>Tom</name>
<art>Hund</art>
<charakter>
<eigenschaft>lieb</eigenschaft>
<eigenschaft>verspielt</eigenschaft>
</charakter>
</tier>
Während JSON für seine Effizienz und Einfachheit bevorzugt wird, insbesondere in Web-basierten Anwendungen, wird XML aufgrund seiner präzisen Strukturierung und Erweiterbarkeit in komplexeren oder regulierten Umgebungen eingesetzt. Die Wahl zwischen JSON und XML hängt stark von den spezifischen Anforderungen des Projekts und der bevorzugten Arbeitsweise des Entwicklerteams ab.
Die 5 wichtigsten Standards & Protokolle für API Architekturen im Überblick.
Jede API-Bauweise hat ihre eigenen Vorzüge, die sie für unterschiedliche Einsatzgebiete und Anwendungen geeignet macht. Die Architektur ist allerdings nicht zu verwechseln mit dem verwendeten Protokoll: Während API-Architekturen den konzeptionellen Rahmen und die Prinzipien definieren, wie APIs entworfen und verwendet werden, legen die verwendeten Protokolle die Regeln und Standards der API-Kommunikation fest.
REST-APIs: einfach und flexibel.
REST (Representational State Transfer) ist ein Standard für die Gestaltung von netzwerkbasierten Anwendungen wie Webanwendungen oder mobile Apps. Sie legt einen Rahmen für die Kommunikation zwischen Client und Server fest.
Jeder Endpunkt kann dabei durch eine eindeutige URL abgerufen werden. Möchte beispielsweise ein Kunde in einem Hotel ein Zimmer buchen, kann er sich über die URL https://www.testhotel.com/zimmer eine Liste der Hotelzimmer anzeigen lassen.
Eine REST-API verwendet standardisierte HTTP-Methoden wie GET, POST, PUT und DELETE, um Operationen auszuführen wie das Lesen, Erstellen, Aktualisieren oder Löschen bestimmter Ressourcen. Hat der Kunde beispielsweise bereits ein Zimmer gebucht, möchte aber den Reisezeitraum ändern, wird dies über den API-Aufruf PUT geregelt.
In der REST-Architektur ist jede Interaktion „stateless“ (zustandslos), was bedeutet, dass jeder API-Aufruf unabhängig voneinander erfolgt und der Server keine Sitzungsdaten speichert. Damit muss zwar jede Anfrage alle Informationen enthalten, die der Server benötigt, um sie zu verstehen und zu verarbeiten. Allerdings erhöht es auch die Zuverlässigkeit und Performance einer Sitzung erheblich.
SOAP-APIs: sicher und zuverlässig.
SOAP steht für Simple Object Access Protocol und ist ein Protokollstandard, der für den Austausch von Nachrichtendaten zwischen Netzwerkanwendungen verwendet wird. Es baut auf XML auf, um Nachrichten zu strukturieren, und nutzt in der Regel HTTP oder SMTP (Simple Mail Transfer Protocol) für die Übertragung dieser Nachrichten.
Ein wichtiges Merkmal von SOAP ist seine strenge Spezifikation bzw. Strukturierung, was es sehr zuverlässig macht.
Dadurch, dass SOAP auch Web Services Spezifikationen wie WS-Security für Verschlüsselung und Authentifizierung unterstützt, wird es gerne für Anwendungen und Services genutzt, die eine hohe Sicherheit erfordern, z.B. für Banktransaktionen.
SOAP wird tendenziell als schwerfälliger angesehen als z.B. REST, besonders für einfache Anwendungsfälle. Der Grund dafür liegt in der komplexen Struktur von SOAP-Nachrichten und dem Overhead, der durch das XML-Format verursacht wird. Dennoch bleibt SOAP eine beliebte Wahl für Enterprise-Level-Anwendungen, wo die Bedürfnisse nach Sicherheit und Zuverlässigkeit der Daten die Komplexität rechtfertigen.
GraphQL: moderne REST-Alternative.
GraphQL ist eine von Facebook entwickelte Abfragesprache für APIs und stellt eine moderne Alternative zu traditionellen REST- und SOAP-APIs dar. Es ermöglicht beispielsweise optimierte Datenabfragen für Nutzerprofile und Feeds auf Social Media Plattformen.
Die Technologie erlaubt eine gezielte, Client-gesteuerte Datenabfrage, bei der der Client exakt festlegen kann, welche Daten er benötigt. Im Gegensatz zu REST werden also nur relevante Daten geladen, womit sogenanntes Overfetching (zu viele irrelevante Daten werden abgerufen) oder Underfetching (zu wenige oder lückenhafte Daten werden abgerufen) verhindert wird.
Hinzu kommt, dass die Abfragesprache nur einen einzigen Endpunkt in Form einer einzigen API-URL benötigt. Dadurch laufen alle Abfragen über eine zentrale /graphql-Route, anstatt auf jeden Endpoint mittels einer dedizierten URL zugreifen zu müssen.
Ein wesentlicher Vorteil von Facebooks Abfragesprache ist zudem die Fähigkeit, mit einer Anfrage mehrere Endpoints abzufragen und zusammenzuführen (sogenannte „Batch Requests“), was die Anzahl der Netzwerkanfragen reduziert. Dies ist besonders nützlich in Netzwerken mit hoher Latenz oder begrenzter Bandbreite, z.B. mobile Netzwerke.
RPC und gRPC: remote und asynchron.
RPC steht für Remote Procedure Call und ist ein Kommunikationsprotokoll, das die Ausführung von Funktionen oder Vorgängen auf einem physisch entfernten System ermöglicht, als ob sie lokal ausgeführt würden. Das verringert die Komplexität und erleichtert Entwicklern die Erstellung und Bereitstellung von Funktionen.
RPC unterstützt sowohl synchrone als auch asynchrone Kommunikation, was bedeutet, dass der Client auf eine Antwort warten kann (synchron) oder mit anderen Aufgaben fortfahren kann, bis die Antwort eintrifft (asynchron).
Die Technologie wird häufig in räumlich verteilten Systemen und bei der Entwicklung von Netzwerkanwendungen wie Webdiensten oder Cloud-basierten Diensten eingesetzt, wo es wichtig ist, die Komplexität der direkten Netzwerkkommunikation zu reduzieren.
Oftmals wird auch anstelle von RPC das von Google erweiterte Framework gRPC genutzt, das für seine hohe Leistung und niedrigen Latenzen bekannt ist. Es eignet sich daher besonders gut für Mikroservices und Anwendungen, die eine hohe Skalierbarkeit voraussetzen. Googles Technologie nutzt das schnellere und sicherere Transportprotokoll HTTP/2, das ebenfalls schnellere Serialisierungs-Format Protobuf (Protocol Buffers) und beherrscht die API-Interaktionsmodelle Unary (einfache Anfrage-Antwort), Server-Streaming, Client-Streaming und bidirektionales Streaming.
Während gRPC speziell für die Bedürfnisse moderner, entkoppelter Systeme und Mikroservice-Architekturen konzipiert ist, sind traditionelle RPC-Systeme etwas flexibler und für mehr Anwendungsbereiche geeignet.
OData: offen und standardisiert.
OData (Open Data Protocol) ist eine offene Technologie, die auf REST basiert und für die Erstellung und Nutzung von standardisierten, interoperablen REST-APIs entworfen und verfügbar gemacht wurde.
Es ermöglicht die einfache Veröffentlichung, Bearbeitung und das Abrufen von Daten über das Internet. OData zielt darauf ab, den Access auf Datenbestände ähnlich einfach zu gestalten wie das Web den Zugriff auf Dokumente vereinfacht, und verwendet dafür bekannte Webtechnologien wie HTTP, Atom Publishing Protocol (AtomPub) und JSON.
OData ist in der Lage, komplexe Datenabfragen über URLs zu verarbeiten, was Operationen beinhaltet wie Filterung, Sortierung, Paginierung und Assoziationen zwischen Datensätzen. Entwickler können mithilfe von OData RESTful Services erstellen, die es Clients erlauben, mit Daten flexibel zu interagieren.
Durch die Standardisierung des Zugriffs auf Datenquellen verschiedener Art (wie relationale Datenbanken, Dateisysteme, Content-Management-Systeme und traditionelle Webdienste) erleichtert OData die Entwicklung von plattform- und geräteunabhängigen Anwendungen. Das macht es für Entwickler zu einem wertvollen Tool, um datengesteuerte Anwendungen zu erstellen, die sich mit geringstem Aufwand anpassen und in verschiedene Datenquellen integrieren lassen.
Beherrschen der API-Architektur geht auch einfach. Mit Lobster.
Neben einer API-Strategie ist auch eine durchdachte API-Architektur bei der Digitalisierung und Automatisierung von Geschäftsprozessen von Bedeutung. Sie ermöglicht nicht nur die effiziente Integration unterschiedlichster Systeme und Technologien, sondern auch die sichere und skalierbare Verwaltung von Datenströmen über ein API-Gateway. Beim Entwerfen einer API-Bauweise spielen die Wahl des zugrunde liegenden Datenformats und die Anwendung passender Standards eine wichtige Rolle.
Lobsters umfassende Lösungen und No-Code Tools helfen dir dabei, die Herausforderungen moderner Datenintegration zu meistern. Und das ganz ohne Programmierkenntnisse! Lobsters zentrale Datenplattform vereinfacht sowohl die Verwaltung deiner APIs als auch die Integration verschiedener Systeme und externer Partner.
Durch die Unterstützung aller gängigen Industriestandards und die Bereitstellung einer breiten Palette an Konnektoren für dein API-Management ermöglicht die Data Platform eine nahtlose und sichere Datenübertragung. Ganz egal, welche Formate und Standards dafür eingesetzt werden. Für Anwendungen in verschiedenen Umgebungen, Use Cases verschiedener Branchen und inklusive Überwachung und Optimierung der API-Leistung.
Besonders praktisch ist auch das Abbilden komplexer Business Workflows, was die Tür für weitergehende Automatisierung und datengetriebene Entscheidungsprozesse öffnet.