Gravitee - Open Source API Management im Vergleich

Von: Thomas Bayer
Datum: 9. Mai 2018
Aktualisiert: 25. Jan. 2019

Gravitee ist eine auf Java basierende API Management Lösung mit einer ansprechenden Benutzeroberfläche und Swagger Unterstützung. Das Produkt des französischen Startups Gravitee Source besteht aus den Komponenten Gateway, Management API und Portal. Die Oberfläche gliedert sich in einen Bereich für Administratoren und einen API Katalog für Entwickler.

1 Installation

Das Produkt teilt sich in zwei Downloads auf: einen für das API Management und einen für das Access Management. Der API Management Download enthält die Komponenten Gateway, Management API und API Portal. Gateway und Management API sind Java Anwendungen und das Portal ist eine HTML5 Anwendung, die in einen Web Server installiert werden kann. Vor der eigentlichen Installation muss eine MongoDB, eine Elasticsearch Datenbank, Node und ein Web Server installiert werden.

2 Komponenten

Die Komponenten können auf einen oder mehrere Rechner verteilt werden. Die Management Konsole ermöglicht die Verwaltung von mehreren API Gateways.

2.1 API Gateway

Die API Gateway Komponente ist in Java geschrieben und basiert auf Vert.x, einem reaktiven Toolkit für die JVM. Per Knopfdruck können APIs, Policies und Konfigurationseinstellungen an die Gateways übermittelt werden. Über "Shared Tags" können APIs gezielt bestimmten Gateways zugeordnet werden. Falls API und Gateway über das selbe Tag verfügen wird eine Zuordnung hergestellt.

2.2 Management Konsole

Die Management-Oberfläche ist eine Client-seitige Angular Anwendung, die von einem Web Server ausgeliefert wird. Das UI beinhaltet einen API Gallery genannten Katalog für Entwickler, die die APIs nutzen möchten. In der Web Konsole können Publisher ihre APIs verwalten und Administratoren die Installation überwachen.

APIs können vom Publisher von Scratch oder aus einer Swagger API Beschreibung erstellt werden.

Das Anlegen eines Service ist in zwei Minuten erledigt. Neben Metadaten wie Servicename und Beschreibung werden nur wenige Informationen wie z.B. die Zieladresse benötigt, an die die Aufrufe weiter geleitet werden. Nach dem Anlegen können einem Service über Policies weitere Eigenschaften hinzugefügt werden. Über den Pfad und die HTTP Methode kann eine Policy feingranular zugewiesen werden. Über 40 Policies erlauben die Aktivierung u.a. der folgenden Funktionen:

  • API Keys
  • CORS
  • Cache
  • Groovy Scripting
  • REST nach SOAP Konvertierung
  • JSON Transformation

Jedem Endpunkt kann eine eigene Policy zugewiesen werden. Im Beispiel unten wurde dem Pfad / eine Policy für API Keys zugewiesen. Über Vererbund ist diese Policy auch für alle untergeordneten Pfade gültig.


Abbildung 1: Gravitee Policy Editor

Nach dem Einrichten kann für ein API ein Plan angelegt werden. Ein Plan ist so etwas wie ein Tarif oder Angebot, der die Konditionen der API Nutzung regelt. Ein API Nutzer kann einen Plan auswählen und so eine Subscription für dieses API eingehen. In der Management Konsole können die Subscriptions von Administrator verwaltet werden. Die Abbildung unten zeigt eine Liste der Subscriptions und die zugeordneten Pläne.


Abbildung 2: Verwaltung der Subscriptions

Ob eine manuelle Freischaltung eines Nutzer nötig ist oder nicht kann beim Anlegen eines Planes eingestellt werden. Die beiden Subscriptionen mit Status "pending" in der Abbildung oben, erfordern eine Freischaltung.

2.3 Analytics und Logging

Gravitee beinhaltet eine Analytics Komponente, welche Kennzahlen wie Latency und Antwortzeiten in ansprechenden Diagrammen visualisieren kann.


Abbildung 3: API Analytics Diagramm

Das Logging kann jeden einzelnen Aufruf mit Request- und Response-Nachricht mitschneiden. Die Abbildung unten zeigt den Nachrichtenfluss eines Aufrufes. Die rechte untere Hälfte in Blau zeigt die Nachricht, wie sie vom Backend empfangen wurde mit Statuscode, HTTP Header Feldern und dem Inhalt des Bodys. Links vom Pfeil ist die Nachricht abgebildet, wie sie an den Client zurück geschickt wurde. Die rot hinterlegten HTTP Felder wurden von Gravitee hinzugefügt und sind nur in der Response Nachricht auf der Strecke vom API Gateway zum Client enthalten. Der X-MyHeader wurde durch eine Policy in die Nachricht eingefügt.


Abbildung 4: Details des Nachrichtenflusses zu einem Logeintrag

2.4 API Katalog

Der API Katalog heißt bei Gravitee API Gallery. In der Gallery können Subscriptions angefordert und die Dokumentation eingesehen werden.

Für die Dokumentation der APIs können mit der Textauszeichnungssprache Markdown Seiten angelegt werden. API Beschreibungen in der Form von Swagger und RAML können ebenfalls für die Dokumentation verwendet werden. Swagger bzw. Open API Beschreibungen werden als interaktive HTML5 Dokumentation ausgegeben.


Abbildung 5: Swagger Dokumentation im API Katalog

Administratoren können mit Benachrichtigungen, die im Portal erscheinen, die Benutzer z.B. über Neuerungen oder Wartungsarbeiten informieren.

3 Datenmodell

Alle API Management Lösungen verwenden ein internes Datenmodell. Das Datenmodell bestimmt, wie man mit dem Produkt arbeitet und welche Sachverhalte abgebildet werden können. Bei der Auswahl einer API Management Lösung sollte geprüft werden, ob das Datenmodell zur eigenen Organisation passt. Einfache Datenmodelle erlauben eine unkomplizierte Arbeit und eine schnelle Einarbeitung. Komplexere Modelle sind leistungsfähiger erfordern aber mehr Einarbeitung.

Das Diagramm unten zeigt das Datenmodell von Gravitee. Die Zuordnung von einem API zu seinen Funktionen ( Policies) erfolgt über Endpunkte. Damit ein Consumer ein API verwenden kann, muss für dieses ein Plan erstellt werden, für den der Consumer eine Subscription erstellen kann.


Abbildung 6: Datenmodell

Das Datenmodell von Gravitee hat mittlere Komplexität.

4 Fazit

Gravitee API Management ist ein durchdachtes Produkt mit einer ansprechenden Benutzeroberfläche, welches auf der Java Plattform aufsetzt. Die Verwendung von Java ermöglicht die Erweiterung von Gravitee durch Funktionen der Java Plattform. Über eine eigene Policy kann so zum Beispiel ein Token für Single Sign on angefragt werden.

Die Popularität von Gravitee hat in den letzten Monaten stark zugelegt und das Produkt entwickelt sich ständig weiter.

4.1 Vorteile

  • Komfortable Web Konsole
  • Durchdachte Oberfläche
  • Portal unterstützt den Entwickler von Consumern mit curl Beispielen
  • Nachrichtenfluss kann nachträglich gut nachvollzogen werden.
  • Leistungsfähige Log Konsole, die Nachrichten vor und nach der Manipulation durch das Gateway anzeigen kann!

4.2 Nachteile

Große Nachteile gibt es bei Gravitee keine.

  • Für den Betrieb ist eine MongoDB und Elasticsearch notwendig.
Weitere Produkte

Dieser Artikel ist Teil einer Reihe über API Management in der Open Source und kommerzielle Lösungen vorgestellt werden.

Lese auch die API Management Einführung

Youtube Demo

Schaue auf Youtube eine kurze Live-Demo: