Digitalisierung und Innovation / 18.10.2019 / Holger Tiemeyer

Wie REST in verschiedenen Kontexten hilfreich ist

In meinem Beitrag „Welches Potenzial steckt hinter RESTful APIs?“ habe ich beschrieben, welche Prinzipien hinter REST stehen und wie sie innerhalb des WWW zum Einsatz kommen. In diesem Artikel geht es nun um die Frage, wie REST beim Aufbau moderner Softwarearchitekturen unterstützt.

Beispielsweise sind die Schlagwörter „Microservice“ und „REST-API“ heutzutage brandaktuell und stehen zueinander in einer engen Beziehung. Die Idee hinter Microservices lautet, grob gesagt, Programme in fachlich spezifizierte Teilsysteme bzw. -komponenten zu zerlegen, von denen jede Komponente als eigenständiger (Service) Prozess bereitgestellt wird. Die Summe dieser Teilprozesse bildet dann das Gesamtsystem. Dies hat den Vorteil, dass das System skalierbar und leichter zu warten ist. Die Microservice-Prozesse sind untereinander vernetzt und bilden ein verteiltes System. Eine Bedingung für eine gute Skalierbarkeit ist eine weitestehende Entkopplung der Services untereinander – womit wir schon beim Thema REST angelangt sind.

Wie ich im letzten Blogbeitrag zu diesem Thema bereits aufgezeigt habe, geht das REST-Prinzip von einem ebensolchen verteilten System aus, in dem selbstbeschreibende Ressourcen bereitgestellt werden. Einige der Annahmen, die der REST-Pionier Roy Fielding paradigmatisch für Web-Systeme festsetzte, lassen sich daher auch auf Microservice-Systeme übertragen. Dazu gehören beispielsweise Anforderungen wie lose Kopplung oder Skalierbarkeit. Die damit definierten Erwartungshaltungen an das Web gleichen also denjenigen der Microservices. Wie kann also eine System-Architektur aussehen, die einen hohen Erfüllungsgrad der REST-Prinzipien aufweist?

 

Der Ansatz „API First“ erleichtert die Integration

Die API sollte bereits vor der eigentlichen Implementierung des Systems spezifiziert und idealerweise auch realisiert werden. Hierdurch steigt die Effektivität bei der Implementierung des Systems anhand der vorgegebenen API-Spezifikation. Für die Umsetzung von „API First“ stehen den Projektteams mittlerweile zahlreiche Werkzeuge zur Verfügung, die sich an den jeweiligen Beschreibungssprachen für APIs anlehnen. Hier ist zum Beispiel das Toolset Swagger zu nennen, welches auf der openAPI-Spezifikation aufsetzt. 

Gerade bei großen und komplexen Systemen, die zudem noch von getrennt voneinander arbeitenden Teams entwickelt werden, bietet dieser Ansatz einen wichtigen Mehrwert. Denn er stellt sicher, dass sich die einzelnen Bausteine des Systems reibungslos aneinander andocken lassen und miteinander harmonieren. Der REST-Architekturstil lässt sich nämlich nicht nur für die Client-Server-Kommunikation fruchtbar machen, sondern auch für die Kommunikation zwischen den Services. Bei einer Interservice-Kommunikation mittels REST kann als Datenaustauschformat beispielsweise ein XML-Dokument, basierend auf der Atom-Spezifikation herangezogen werden.

 

Mit REST entfällt Aufwand für die API-Versionierung

Bei einer RESTful API ist keine Versionsnummer nötig, denn gemäß dem HATEOAS-Gedanken entwickelt sie sich dynamisch. Die Möglichkeiten, die die neue oder geänderte API bereitstellt, werden über die Ressourcen an einen jeweiligen Client kommuniziert. Ausnahmen sind allerdings semantische Änderungen oder Sicherheitsthemen. Hier können Fälle auftreten, in denen grundsätzliche Änderungen einer API notwendig sind. Dennoch bedarf es selbst dann keiner Einführung eines Versionsidentifikators. Dies ist auch bei Webseiten so zu beobachten: Hier bedarf es ebenfalls keiner Versionsnummern. Vielmehr wird die neue Version unter einer neuen Basis-URL publiziert und die übrigen Links werden dynamisch angepasst.

 

API-Management aus einem Guss

Der Einsatz von RESTful APIs ist eine wichtige Kompetenz, um verteilte Systeme aufzubauen und zu betreiben. REST hilft bei der Vereinheitlichung, Vereinfachung sowie der Verwaltung der Schnittstellen. Zudem lässt sich die Kommunikation zwischen den Services mit einem geringeren Aufwand und einer niedrigeren Latenz realisieren.

Einblicke

Shaping the future with our clients