Wie REST in verschiedenen Kontexten hilfreich ist

Von Holger Tiemeyer , 18.10.2019, 10:05
REST

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.

 

Anschließend an diese Betrachtung von Einsatzmöglichkeiten von REST widmet sich mein nächster Blogbeitrag den Kritikpunkten an REST und der Alternative GraphQL.

Alle Artikel unseres PENTASYS Blogs finden Sie hier: www.pentasys.de/blog

 

Neuen Kommentar schreiben

Ich habe die Datenschutzhinweise zur Kenntnis genommen. Ich stimme zu, dass meine Angaben und Daten zur Beantwortung meiner Anfrage elektronisch erhoben und gespeichert werden.