© Excellent backgrounds/Shutterstock.com
API Gateway

Die Drehscheibe


In den letzten Monaten ist der Begriff des API Gateways immer populärer geworden – und das in ganz verschiedenen Kontexten. Was ist so ein API Gateway, was kann es und wann und wofür sollte oder kann man es einsetzen? Und ist das etwas Neues oder gibts das schon länger? Es ist Zeit, sich mit dem Begriff und ein paar Einsatzszenarien auseinanderzusetzen.

Der Einsatz als Proxy ist sicherlich das einfachste und am weitesten verbreitete Szenario für ein API Gateway, und die Basis für alle weiteren. Hierbei werden eingehende Requests auf das API einfach zu einem hinter dem Gateway liegenden Service weitergeleitet. Das kann verschiedene Gründe haben. Meist möchte ich den intern verwendeten URL nicht nach außen geben oder mir die Austauschbarkeit der Serviceimplementierung hinter dem API offen lassen. Ist z. B. ein Customer-Service über den öffentlichen URL http://api.mydomain.tld/customers in einer bestimmten Version V1 erreichbar, kann der interne Service unter /v1/customers gegen eine neue Implementierung V2 mit einem anderen, neuen internen URL /v2/customers ausgetauscht werden, ohne dass die Konsumenten des Service über die Änderung informiert werden müssen. Denn für sie hat sich ja aufgrund des API Gateways nichts geändert.

Wenn hinsichtlich der Versionierungssemantik die verschiedenen Serviceversionsinstanzen unterschiedlich implementiert sind, kann ein API Gateway einen einheitlichen Versionierungsmechanismus zur Verfügung stellen. Es kann dann den Serviceaufruf z. B. über einen Header, einen URL-Teil wie im Beispiel oder über andere Unterscheidungsmerkmale an die richtige Implementierung verteilen (Abb. 1). Die Diskussion, mit welchem Kriterium die unterschiedlichen Versionen erkannt werden sollen, ist eine eigene und soll hier im Artikel nicht weiter verfolgt werden. Die von mir dargestellte Variante über einen Versionsmarker im Pfad ist lediglich die offensichtlichste und für ein solches Beispiel die einfachste Möglichkeit.

koebler_api_gateway_1.tif_fmt1.jpgAbb. 1: API Gateway als Proxy für verschiedene API-Versionen

Ein anderes Proxy-Szenario kann die Protokollübersetzung sein. Sollen Clients, die unser API nutzen, Nachrichten abliefern, die wir intern z. B. über ein Messaging-System weiterverarbeiten wollen, kann das API Gateway eine HTTP-Schnittstelle bereitstellen und die entgegengenommenen Daten beispielsweise über ein proprietäres Messaging-Protokoll an die Queue oder das Topic weiterleiten. Die Clients müssen dies nicht implementieren. Das führt zu einer schönen Art der Entkop...

Neugierig geworden?

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