© Excellent backgrounds/Shutterstock.com
Effiziente Entwicklung von REST-Anwendungen mit dem Apache-Sling-Framework

REST in Peace, Sling!


Mit seiner radikalen Implementierung der REST-Architektur war das Apache-Sling-Framework [1] seiner Zeit zu weit voraus und lange Zeit den Benutzern des Content-Management-Systems Adobe AEM [2] vorbehalten. Dabei komponiert das Open-Source-Framework auf einzigartige Weise Architekturstandards zu einer skalierbaren Lösung. Zeit, ihm mehr Beachtung zu schenken.

Dieser Artikel ordnet Sling in die bestehende Webframeworklandschaft ein und gibt einen Überblick über seine Architektur. Anschließend werden Anwendungs- und Codebeispiele gezeigt, die die besonderen Eigenschaften von Sling illustrieren. Der Artikel schließt mit der Betrachtung der aktuellen Entwicklung und der Zukunft des Frameworks ab.

Web was?

Wer versucht, die bestehende Landschaft von Webframeworks zu überblicken, wird von der Vielzahl an Lösungen und Begriffen erschlagen. Wikipedias Liste der wichtigsten Webframeworks kennt unzählige, in mehr als dreizehn verschiedenen Programmiersprachen geschriebene Varianten [3]. Was sind ihre Gemeinsamkeiten?

Die Säulen des Webs

Wer vom Web spricht, spricht von HTTP. Entsprechend stellen alle Frameworks zunächst einen HTTP-Server zur Verfügung oder benötigen einen solchen. Wer von HTTP spricht, spricht natürlich über dessen Methoden und über URIs, also über die Verben und Subjekte des Webs. Diese definieren die zweite Charakteristik der Frameworks: Sie stellen einen Weg zur Verfügung, URIs im Zusammenhang mit HTTP-Methoden und -Headern Ressourcen zuzuordnen, was als Routing bezeichnet wird.

Bleibt noch der Konversationsinhalt: Im Web werden Informationen primär in JSON, XML und HTML repräsentiert. Folgerichtig unterstützen Webframeworks meist alle diese Formate als Repräsentation ihrer Ressourcen. Client/Server, HTTP, HTML, URIs, Ressourcen – es ist kein Zufall, dass genau diese Elemente die Eckpfeiler des zentralen Architekturstils des Webs bilden: REST [4].

Sind alle Webframeworks RESTful?

Im Prinzip ja. Wie könnte es auch anders sein – im Grunde genommen ist das Web selbst eine REST-Implementierung. Zudem ist REST-Stil weniger restriktiv als weithin angenommen. Das Verwenden „exotischer“ URIs, der Gebrauch von Query-Parametern als Befehle [5] – ja sogar Sessions müssen (zumindest in der Theorie) kein Verstoß gegen diesen Architekturstil sein. Zwar verbietet REST explizit serverseitigen Konversationszustand, würde man die Inhalte der Session jedoch als Ressource auffassen und den Session-Zustand als Ergebnis einer Serie von HTTP-Operationen der Form <Met...

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