© GreenFlash/Shutterstock.com
Teil 3: API-Protokolle und -Technologien

Schnittstellen fürs Business


APIs sind eine Schlüsseltechnologie für Unternehmen. Mehr als 20 000 APIs sind auf ProgrammableWeb gelistet [1]. Die Wahl eines Designansatzes ist die vielleicht wichtigste Entscheidung bei der API-Entwicklung. Das API wird strukturiert und die Interaktion des Endbenutzer mit den Ressourcen hinter dem API beeinflusst.

Die Wahl des API ist nicht nur die Auswahl eines Ansatzes für den Entwickler, sondern bestimmt, wie eine Anwendung gebaut und die Beziehung zu Kunden gepflegt werden kann. REST beherrschte in den letzten Jahren die API-Szene, stößt aber bei modernen Applikationen an Grenzen. Es gibt diverse andere Architekturansätze, für die APIs bestimmte Probleme mit REST-basiertem Ansatz lösen. Diese Lösungen sind keine Konkurrenten von REST, sondern können komplemetär verwendet werden.

In den letzten Jahren haben z. B. Google und Facebook Protokolle entwickelt, die bestimmte Probleme in verteilten Anwendungen mit APIs lösen. Dieser Artikel stellt die drei prominentesten Lösungen aus dem Werkzeugkasten der API-Protokolle vor und vergleicht sie miteinander.

Problembeschreibung

APIs bilden das Rückgrat moderner Anwendungen. Sie stellen das Backend für Webclients und mobile Anwendungen bereit und werden auch für die Kommunikation zwischen Anwendungen verwendet, unabhängig von Technologie und Plattform. Wenn man über das Erstellen von webbasierten APIs nachdenkt, wählt man normalerweise RESTful APIs zusammen mit JSON als Standard für den Datenaustausch zwischen Anwendungen aus. Dieser Ansatz ist für viele Anwendungen im Zusammenhang mit JSON-basierten RESTful APIs problemlos einsetzbar. Im Zeitalter der Cloud sollten Microservices in der Lage sein, massiv zu skalieren, was für die Performance äußerst wichtig ist. Die große Frage ist, ob JSON-basierte APIs die hohe Leistung und Skalierbarkeit bieten, die für moderne Anwendungen erforderlich sind. Ist JSON wirklich ein schnelles Datenformat für den Datenaustausch zwischen Anwendungen? Können bidirektionale Stream APIs mit RESTful Architektur problemlos erstellt werden? Kann man mit RESTful Architektur komplexe APIs erstellen?

Auswahlmöglichkeiten

Abbildung 1 zeigt die prozentuale Aufteilung der in ProgrammableWeb aufgelisteten APIs auf die zurzeit existierenden Protokolle. Man sieht: REST ist der mit Abstand am häufigsten eingesetzte Architekturstil. RPC wird aufgrund der zahlreichen APIs im SOAP- und XML-RPC-Stil, die vor allem in den frühen Tagen der Business-APIs auf den Markt kamen, am zweithäufigsten verwendet. Auch die gRPC APIs von Google fallen in diese Kategorie. GraphQL [2] ist, wie wir am „QL“ im Namen sehen, eine Abfragesprache. Sie steckt noch in den Anfängen, es gibt bereits ein paar produktionsreife APIs. Yelp und GitHub sind die beiden bekanntesten Anwender, die GraphQL als Alternative zu REST verwenden. Vergleicht man die bestehenden API-Protokolle, erkennt man, wie sich die Konzepte und Ansätze der API-Architektur entwickelt haben und welche Probleme jedes neue Protokoll gelöst hat.

jalali_sohi_api_1.tif_fmt1.jpgAbb. 1: Architekturstile der API-Protokolle (Quelle: [1])

REST

Representational State Transfer oder REST ist ein Architekturstil, der Vorgehensweisen und Einschränkungen für die Implementierung von Web-APIs definiert. Er wurde von Roy Fielding in seiner Doktorarbeit [3] vorgeschlagen. REST arbeitet über eine einzige, konsistente Schnittstelle, um auf benannte Ressourcen zuzugreifen. Es wird am häufigsten verwendet, wenn ein öffentliches API über das Internet verfügbar gemacht werden soll, ist aber auch sehr beliebt bei Enterprise-Architekturen. Das Protokoll ermöglicht die Trennung von Client und Server über einen statusfreien (stateless) Informationsaustausch.

Die REST-Architektur ist für die Datenübertragung abhängig von Hypermedia. Sie kann auf viele Ressourcen zugreifen, verschiedene Formate können für unterschiedliche Zwecke angefordert werden. Für Systeme, die eine schnelle, statuslose Iteration und standardisierte HTTP-Nachrichten erfordern, ist REST am besten geeignet. Ein übliches Designmuster bei REST APIs ist die Stru...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang