REST Web Services

Software Architekturen für Webanwendungen sind sehr zahlreich und darüber hinaus so breit gestreut, dass es auf dem Markt kaum einheitliche Lösungen für bestimmte Probleme oder Vorhaben gibt. Die Idee der REST Architektur setzt genau hier an, sorgt für eine Konsolidierung vieler gängiger Techniken und schafft etwas, das als Programmierparadigma verschiedene Aspekte und Ansätze der Webentwicklung ordnet und zusammenführt. Dabei versteht sich REST (Respresentional State Transfer) nicht als Standard oder Norm, ist aber die logische Konsequenz der bisherigen Entwicklung von Webservices, Online Anwendungen sowie Web-Technologien im Allgemeinen. Als momentaner Hype und Trend in der Webentwicklung geht die REST-Architektur zurück auf Roy Thomas Fielding 1, der im Jahr 2000 in seiner Dissertation die Zusammenhänge erstmals aufzeigte und darlegte.

WAS IST NEU AN REST ?

Ein RESTful Service räumt Ihr System auf und schafft für alle Web-Dokumente und eingebunden Inhalte eindeutige Identifikationen. Im Kern wird REST deshalb oft auch als „ROA“ (Resource-oriented Architecture) bezeichnet, deren Mechanismus es erlaubt, leicht und flexibel Ressourcen zu modifizieren bzw. im Browser innerhalb von Repräsentation anzuzeigen. Prinzipiell kann so jede nur erdenkliche Entitäte (Text, Grafik, Bestellung, Produkt, Tabelle) bzw. beliebig zusammengesetzte Struktur eine eindeutige Adresse erhalten, unter der dann eine eindeutige Erreichbarkeit besteht. Dieses Vorgehen ermöglicht es, einerseits gewünschte Ressourcen einzeln und gezielt anzusurfen, was die Anzahl der Server Anfragen senkt und Traffic spart, und andererseits wird es dem User möglich, nur einzelne für ihn interessante Ausschnitte zu bookmarken oder weiterzuleiten, da eine Webanwendung nicht mehr länger ausschließlich unter einer einzigen Adresse gehalten wird und zugänglich ist.

Die Schönheit an REST wird nun offensichtlich, wenn der Gedanke der Adressierbarkeit der Ressourcen an die Zahl der potenziell möglichen Repräsentationen geknüpft wird. Dadurch, dass HTTP diesen Ansatz bereits unterstützt (Accept- und Content Type Header), können neben einem Standardformat auch weitere ganz unterschiedliche und spezifische Versionen von den Clients angefordert und auf den Endgeräten abgebildet werden (HTMLXML 1.1/1.2, JSON, RSS)

WIE ERSTELLT SICH EINE REST ANWENDUNG

Eine RESTful Anwendung basiert auf Funktionen oder Methoden, die wie gewohnt über Objekten kommunizieren und auch ansonsten ganz ähnlich zu verteilten RPC Anwendungen arbeiten. Technisch verwendet REST die Funktionalität von HTTP und die URI basierten Ressourcen, während RPC an dieser Stelle auf seine eigens implementierten Komponenten zurückgreifen würde. Als Konsequenz des Anspruchs verteilte, und vernetzte Ressourcen zu transformieren, sieht REST entsprechend restriktive und einheitliche Schnittstellen vor. Äquivalent zu HTTP wird dabei Gebrauch von bekannten – hier aber konkretisierten – Methoden GET, PUT, POST, DELETE gemacht, die uniform von jeder Ressource verstanden werden müssen.

interface Resource {

Resource(URI u)

Response get()

Response post(Request r)

Response put(Request r)

Response delete()

}

Die Generizität dieser Schnittstellen sorgt gegenüber Architekturen wie CORBA, RMI, DCOM dafür, dass das bisher oft notwendige Entwerfen von applikationsspezifischen Operationen und Datentypen entfällt. Bei sauberer Implementierung kann anschließend auf eine derartige Ressource ganz universell mit Browser, Kommandozeile (curl, wget) oder auch extern über Google, Yahoo und Co. zugegriffen werden.

EIGENSCHAFTEN UND BESONDERHEITEN EINES REST WEB-SERVICES

Die Optimierbarkeit aller Ressourcen, die Skalierbarkeit und die uniformen Schnittstellen bilden zusammen die zentralen Konzepte von REST. Prinzipiell erfolgt die Kommunikation bei REST auf Abruf: Der Server wird den Status des Clients unbetrachtet lassen; jede Anfrage muss alle Informationen beinhalten, die zum Interpretieren der Anfrage notwendig sind.

Wenn also verteilte Anwendungen mit losen Kopplungen und Plattformunabhängigkeit zu Ihren Architekturzielen zählen, wird eine Webentwicklung mit REST Ihre Wirkung bestimmt nicht verfehlen. RESTful HTTP ist die zeitgemäße Art und Weise für das Aufsetzen von Webanwendungen, die bisherigen Ansätzen vor allem dann überlegen ist, wenn Verschiebungen von Kontexten unerwartet auftreten oder Darstellungsweisen sich möglichst spontan ändern lassen sollen. Der Umstand, die Ressourcen erst in eine Ordnung einzupflegen, zahlt sich dadurch mehr als aus.

Vorsicht allerdings sei geboten, wenn Begriffe wie REST-Interface oder REST-API im Kleingedruckten auftauchen. Hinter derartigen Metaphern verstecken sich gern auch einmal Funktionalitäten, die nur scheinbar RESTful agieren und die REST-Architektur lediglich auf ein Minimum beschränkt abbildend emulieren. Das eLancer-Team wünscht viel Spaß mit REST! Bei Fragen jeglicher Art stehen Ihnen unsere Kölner Webentwickler wie immer mit Rat und Tat zur Seite.

IT erscheint Ihnen kompliziert?

Wir helfen gerne

Sie müssen nicht verstehen, was eine Programmiersprache ist, um erfolgreich im Web zu sein. Wir helfen gerne bei der Technik. Sie konzentrieren sich auf Ihr Business.

Wir haben die Profis

Das eLancer-Team vereinigt junge Profis aus allen Bereichen der IT und des Online-Marketing. Sie müssen nicht länger suchen, wir vermitteln Ihnen bezahlbare Freelancer, die für Ihr Projekt passen.

Wir geben gratis Tipps

Beschreiben Sie uns doch kurz Ihren Bedarf. Hinterlassen Sie bitte auch Ihre Telefonnummer. Wir rufen Sie zurück, wann immer Sie Zeit haben. Fragen zu Aufwand und Komplexität eines Projektes beantworten wir natürlich kostenlos.