Gravitee - Open Source API Management im Vergleich

Von: Thomas Bayer
Datum: 2018-05-09

Gravitee ist das Produkt des französischen Startups Gravitee Source.

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 und eine Elasticsearch Datenbank installiert werden.

Komponenten

API Gateway

Die API Gateway Komponente ist in Java geschrieben und basiert auf Vert.x, einem reaktiven Toolkit für die JVM. Eine Management Konsole kann mehrere API Gateways verwalten. 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.

Management Konsole

Das Management UI ist eine Client-seitige Angular Anwendung, die von einem HTTP Server ausgeliefert werden muss. Das UI beinhaltet einen API Gallery genannten Katalog für Consumer an. 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
  • JSON Transformation

Die folgende Abbildung zeigt den Policyeditor:


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: Gravitee Subscription Management

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

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

API Katalog

Der API Katalog heißt bei Gravitee Gallery. In der Gallery können Subscriptions angefordert und 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

Vorteile

  • Komfortable Web Konsole
  • Nachrichtenfluss kann nachträglich gut nachvollzogen werden.
  • Leistungsfähige Log Konsole, die Nachrichten vor und nach der Manipulation durch das Gateway anzeigen kann!

Nachteile

  • -

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