www.wikidata.de-de.nina.az
Representational State Transfer abgekurzt REST ist ein Paradigma fur die Softwarearchitektur von verteilten Systemen insbesondere fur Webservices REST ist eine Abstraktion der Struktur und des Verhaltens des World Wide Web REST hat das Ziel einen Architekturstil zu schaffen der den Anforderungen des modernen Web besser genugt Dabei unterscheidet sich REST vor allem in der Forderung nach einer einheitlichen Schnittstelle siehe Abschnitt Prinzipien von anderen Architekturstilen Der Zweck von REST liegt schwerpunktmassig auf der Maschine zu Maschine Kommunikation REST stellt eine einfache Alternative zu ahnlichen Verfahren wie SOAP und WSDL und dem verwandten Verfahren RPC dar Anders als bei vielen verwandten Architekturen kodiert REST keine Methodeninformation in den URI da der URI Ort und Namen der Ressource angibt nicht aber die Funktionalitat die der Web Dienst zu der Ressource anbietet Der Vorteil von REST liegt darin dass im WWW bereits ein Grossteil der fur REST notigen Infrastruktur z B Web und Application Server HTTP fahige Clients HTML und XML Parser Sicherheitsmechanismen vorhanden ist und viele Web Dienste per se REST konform sind Eine Ressource kann dabei uber verschiedene Medientypen dargestellt werden auch Reprasentation der Ressource genannt So ist ein Online Dienst der lediglich unveranderte Seiteninhalte nach dem Internetstandard HTTP anbietet bereits REST konform Dynamisch erzeugte Seiten folgen diesem Paradigma jedoch oft nicht So bieten beispielsweise Nachrichtenseiten sich standig andernde Informationen mit sowohl unterschiedlichem Format als auch Inhalt an die nur schwer automatisch verarbeitet werden konnen Bliebe das Format unverandert so ware eine wichtige REST Eigenschaft erfullt So ware eine Webseite auf der standig die aktuelle Uhrzeit in immer demselben Format abrufbar ist REST konform Die Bezeichnung Representational State Transfer soll den Ubergang vom aktuellen Zustand zum nachsten Zustand state einer Applikation verbildlichen Dieser Zustandsubergang erfolgt durch den Transfer der Daten die den nachsten Zustand reprasentieren 1 Inhaltsverzeichnis 1 Geschichte 2 Prinzipien 2 1 Client Server 2 2 Zustandslosigkeit 2 3 Caching 2 4 Einheitliche Schnittstelle 2 4 1 Adressierbarkeit von Ressourcen 2 4 2 Reprasentationen zur Veranderung von Ressourcen 2 4 3 Selbstbeschreibende Nachrichten 2 4 4 Hypermedia as the Engine of Application State HATEOAS 2 5 Mehrschichtige Systeme 2 6 Code on Demand optional 3 Umsetzung 4 Sicherheit 5 Versionierung 6 HATEOAS 6 1 Beispiel 7 Richardson Maturity Model 8 Abgrenzung zu anderen Kommunikationsmechanismen 9 Siehe auch 10 Literatur 11 Weblinks 12 EinzelnachweiseGeschichte BearbeitenDas REST Paradigma entwickelte sich aus dem 1994 von Roy Fielding entworfenen HTTP Object Model Fielding entwickelte seine Idee von einem einheitlichen Konzept uber die Jahre weiter bis er 2000 den REST Architekturstil im Rahmen seiner Dissertation veroffentlichte 2 Das Programmierparadigma der RESTful Application wurde allerdings haufig falsch umgesetzt und findet erst seit 2014 Anklang in der Welt des World Wide Web In seiner Arbeit geht Fielding dabei auf die verschiedenen Anforderungen ein die fur die Webarchitektur wichtig sind Prinzipien BearbeitenDer Architekturstil verweist auf sechs Eigenschaften die ein Dienst haben muss Dabei ist nicht festgelegt wie diese Prinzipien implementiert werden mussen Fielding beschreibt fur jedes Architekturprinzip dessen Vor und Nachteile 3 Client Server Bearbeiten Es gilt generell die Anforderung dass alle Eigenschaften der Client Server Architektur gelten Dabei stellt der Server einen Dienst bereit der bei Bedarf vom Client angefragt werden kann Der Hauptvorteil dieser Anforderung ist die einfache Skalierbarkeit der Server da diese unabhangig vom Client agieren Dies ermoglicht des Weiteren eine unterschiedlich schnelle Entwicklung der beiden Komponenten Zustandslosigkeit Bearbeiten Jede REST Nachricht enthalt alle Informationen die fur den Server bzw Client notwendig sind um die Nachricht zu verstehen Weder der Server noch die Anwendung soll Zustandsinformationen zwischen zwei Nachrichten speichern Man spricht daher von einem zustandslosen englisch stateless Protokoll Jede Anfrage eines Clients an den Server ist insofern in sich geschlossen als dass sie samtliche Informationen uber den Anwendungszustand beinhaltet die vom Server fur die Verarbeitung der Anfrage benotigt werden Zustandslosigkeit in der hier beschriebenen Form begunstigt die Skalierbarkeit eines Webservices Beispielsweise konnen eingehende Anfragen im Zuge der Lastverteilung unkompliziert auf beliebige Maschinen verteilt werden Da jede Anfrage in sich geschlossen ist und Anwendungsinformationen somit ausschliesslich auf der Seite des Clients vorgehalten werden ist auf der Seite des Servers keine Sitzungsverwaltung erforderlich In der Praxis nutzen deswegen viele HTTP basierte Anwendungen Cookies und andere Techniken um Zustandsinformationen auf der Client Seite zu behalten Weiterhin begunstigt wird die Ausfallsicherheit weil die Zustandslosigkeit fordert dass transaktionale Datenubertragung in einem einzigen Seitenaufruf erfolgt Die Zustandslosigkeit bringt dabei aber den Nachteil mit dass sich die Netzwerkperformance verschlechtert Da bei jeder Abfrage alle Informationen zum Verstehen mitgeschickt werden mussen sind aufwendigere Abfragen notig als wenn sich der Server die Interaktionen merken wurde Caching Bearbeiten HTTP Caching soll genutzt werden wobei aber gilt Eine Anfrage die nicht gestellt werden muss ist die schnellste Anfrage Fielding fuhrt dabei den Nachteil auf dass der Client auf veraltete Cache Daten zuruckgreifen konnte statt die neue Ressource abzufragen Einheitliche Schnittstelle Bearbeiten Dies ist das Hauptunterscheidungsmerkmal von allen weiteren Architekturstilen Dabei besteht diese aus vier weiteren Eigenschaften Ziel ist die Einheitlichkeit der Schnittstelle und somit ihre einfache Nutzung Adressierbarkeit von Ressourcen Bearbeiten Jede Information die uber einen URI kenntlich gemacht wurde wird als Ressource gekennzeichnet Jeder REST konforme Dienst hat eine eindeutige Adresse den Uniform Resource Locator URL Diese Strasse und Hausnummer im Netz standardisiert den Zugriffsweg zum Angebot eines Webservices fur eine Vielzahl von Anwendungen Clients Eine konsistente Adressierbarkeit erleichtert es ausserdem einen Webservice als Teil eines Mashups weiterzuverwenden Reprasentationen zur Veranderung von Ressourcen Bearbeiten Die unter einer Adresse zuganglichen Dienste konnen unterschiedliche Darstellungsformen Reprasentationen haben Ein REST konformer Server kann je nachdem was die Anwendung anfordert verschiedene Reprasentationen einer Ressource ausliefern z B in verschiedenen Sprachen oder Formaten HTML JSON oder XML oder auch die Beschreibung oder Dokumentation des Dienstes Diese Reprasentation enthalt alle notigen Informationen zur Veranderung der Ressource und muss nicht der intern vom Server verwendeten Reprasentation entsprechen z B die Reprasentation zwischen Client und Server wird als JSON ausgetauscht intern speichert der Server die Informationen aber in verschiedenen Spalten einer relationen Datenbank ab Die Veranderung einer Ressource also deren aktuellen Status soll nur uber eine Reprasentation erfolgen Selbstbeschreibende Nachrichten Bearbeiten REST Nachrichten sollen selbstbeschreibend sein Dazu zahlt u a die Verwendung von Standardmethoden Uber diese Standardmethoden lassen sich Ressourcen manipulieren Als Beispiel seien an dieser Stelle die HTTP Verben genannt Details siehe unten Hypermedia as the Engine of Application State HATEOAS Bearbeiten Dies ist laut Fielding die wichtigste Eigenschaft siehe unten Mehrschichtige Systeme Bearbeiten Die Systeme sollen mehrschichtig aufgebaut sein Dadurch reicht es dem Anwender lediglich eine Schnittstelle anzubieten Dahinterliegende Ebenen konnen verborgen bleiben und somit die Architektur insgesamt vereinfacht werden Vorteile dabei sind die bessere Skalierbarkeit der Server sowie eine mogliche Abkapselung durch Firewalls Durch Cache Speicher an den Grenzen z B vom Server zum Web kann die Effizienz der Anfragen erhoht werden siehe Caching Code on Demand optional Bearbeiten Diese Forderung von Fielding ist optional Unter Code on Demand ist zu verstehen dass erst im Bedarfsfall an den Client Code zur lokalen Ausfuhrung ubertragen werden kann Ein Beispiel hierfur ware die Ubertragung von JavaScript Code bei einer HTML Reprasentation Umsetzung BearbeitenFur die Umsetzung des REST Paradigmas wird ein zustandsloses Client Server Protokoll verwendet Als Anwendungsschicht Protokolle werden hauptsachlich HTTP und HTTPS eingesetzt Das liegt unter anderem daran dass sich diese im WWW etabliert haben uber einen vergleichsweise einfachen Aufbau verfugen und mit so gut wie jeder Firewall kompatibel sind REST vereinheitlicht die Schnittstelle zwischen Systemen auf eine uberschaubare und bezuglich des zu erwartenden Verhaltens standardisierte Menge von Aktionen Welche Aktionen dies sind ist in REST nicht festgelegt aber alle Aktionen sind allgemein definiert in der Regel durch die verwendeten Protokolle der Anwendungsschicht Wahrend REST als Abstraktion des WWW keine spezielle Implementierung und kein spezielles Protokoll fordert ist doch zu beobachten dass fast ausschliesslich HTTP verwendet wird wodurch auch die Menge der Aktionen festgelegt ist Wird uber HTTP zugegriffen so gibt die verwendete HTTP Methode darunter GET POST PUT und DELETE an welche Operation des Dienstes gewunscht ist HTTP schreibt vor dass GET sicher englisch safe sein muss was bedeutet dass diese Methode nur Informationen beschafft und keine sonstigen Effekte verursacht Die Methoden GET HEAD PUT und DELETE mussen laut HTTP Spezifikation idempotent sein was in diesem Zusammenhang bedeutet dass das mehrfache Absenden der gleichen Anforderung sich nicht anders auswirkt als ein einzelner Aufruf 4 REST Clients die HTTP verwenden konnen folgende Befehle absetzen um Ressourcen anzufordern oder zu verandern Befehl HTTP Methode Beschreibung AnmerkungenGET Fordert die angegebene Ressource vom Server an GET weist keine Nebeneffekte auf Der Zustand am Server wird nicht verandert weshalb GET als sicher bezeichnet wird n 1 POST Fugt eine neue Sub Ressource unterhalb der angegebenen Ressource ein Da die neue Ressource noch keinen URI besitzt adressiert der URI die ubergeordnete Ressource Als Ergebnis wird der neue Ressourcenlink dem Client zuruckgegeben POST kann im weiteren Sinne auch dazu verwendet werden Operationen abzubilden die von keiner anderen Methode abgedeckt werden n 2 PUT Die angegebene Ressource wird angelegt Wenn die Ressource bereits existiert wird sie geandert n 3 PATCH n 4 Ein Teil der angegebenen Ressource wird geandert Hierbei sind Nebeneffekte erlaubt n 5 DELETE Loscht die angegebene Ressource n 3 HEAD Fordert Metadaten zu einer Ressource an n 5 n 1 OPTIONS Pruft welche Methoden auf einer Ressource zur Verfugung stehen n 5 n 1 CONNECT Dient dazu die Anfrage durch einen TCP Tunnel zu leiten Wird meist eingesetzt um eine HTTPS Verbindung uber einen HTTP Proxy herzustellen n 5 n 1 n 6 TRACE Gibt die Anfrage zuruck wie sie der Zielserver erhalt Dient etwa dazu um Anderungen der Anfrage durch Proxyserver zu ermitteln n 5 n 1 n 6 a b c d e nullipotent Ein Aufruf dieser Methoden fuhrt zu keinen Nebeneffekten nicht idempotent Ein erneuter Aufruf erstellt fur jeden Aufruf mit demselben URI ein neues Objekt anstatt dasselbe Objekt zuruckzugeben a b idempotent Der erste Aufruf dieser Methoden mit einem bestimmten URI fuhrt zu Nebeneffekten Ein erneuter Aufruf mit demselben URI fuhrt zu keinen weiteren Nebeneffekten RFC 5789 PATCH Method for HTTP Marz 2010 englisch a b c d e optional Wird nicht fur CRUD Operationen benotigt a b Eine Implementierung dieser Methoden wirkt sich ggf auf die Sicherheit der Anwendung aus Abhangig von der Implementierung konnen noch weitere HTTP Befehle unterstutzt werden Dazu gehoren COPY MOVE MKCOL LOCK und UNLOCK des WebDAV Protokolls 5 sowie LINK und UNLINK aus RFC 2068 6 Bei der Kommunikation uber UDP kann zudem das CoAP aus RFC 7252 7 statt HTTP eingesetzt werden welches leicht abweichende Bedeutungen fur GET POST PUT und DELETE besitzt Sicherheit BearbeitenDas Paradigma verlangt dass alle Informationen die eine Anwendung braucht um den Seitenzustand wiederherzustellen in der Anfrage enthalten sind Dabei identifiziert der URI die Ressource wahrend im HTTP Header Informationen wie Zugriffsart GET PUT Ruckgabeformat oder Authentifizierung enthalten sein konnen REST lasst sich fur Webseiten und Webservices verwenden die keine Authentifizierung erfordern oder diese auf anderem Wege beispielsweise durch Prufung der IP Adresse durch HTTP Authentifizierung oder TLS HTTPS Zertifikatsprufung erreichen wodurch bereits viele Anwendungsfalle abgedeckt werden konnen Alternativ konnen auch Token basierte Verfahren wie HMAC OAuth JSON Web Token oder OpenID verwendet werden Da REST im Gegensatz zu SOAP mit WS Security selbst keine Verschlusselungsmethoden definiert wird bei sicherheitskritischen Nachrichten ein verschlusseltes Transportprotokoll wie HTTPS verwendet Durch die Nutzung der HTTP Methoden ist es fur Firewalls moglich die Anfrage zu verstehen zu filtern und zu protokollieren Ein Beispiel dafur ware dass alle PUT Anfragen von einer externen Ressource abgelehnt werden konnen Dadurch unterscheidet sich REST von beispielsweise SOAP Versionierung BearbeitenUm einen REST Service zu versionieren stehen mehrere Varianten zur Auswahl uber die DNS Adresse URL und mittels HTTP Header Bei der DNS Versionierung wird die Version als Bestandteil des Hostnamens behandelt http v1 api foo com customer 1234http v1 1 api foo com customer 1234http v2 api foo com customer 1234http v2 2 api foo com customer 1234Diese Variante ist wegen der Verwaltung im DNS ublicherweise mit hohem Aufwand verbunden In der Praxis ist sie daher kaum anzutreffen Bei der URL Versionierung wird die Version der Schnittstelle im Pfad der URL angegeben http foo com api v1 customer 1234http foo com api v1 1 customer 1234http foo com api v2 0 customer 1234http foo com api v2 2 customer 1234Die Versionierung uber die URL ist die gebrauchlichste Variante Bei der Versionierung uber den HTTP Header wird die Version im Accept HTTP Header angegeben GET api customer 1234 HTTP 1 1 Host foo com Accept application xml application json version 1 Nach der Bereitstellung einer neuen Version des Services muss die alte Version des Endpunktes fur eine bestimmte Zeit weiter bereitgestellt werden um dem Nutzer Zeit zur Umstellung zu geben Eine Clientanwendung sollte automatisch erkennen konnen dass der Endpunkt obsolet ist ohne den Endpunkt in der Nutzung einzuschranken Dies kann mittels eines Warning HTTP Headers 8 erfolgen HTTP 1 1 200 OK Date Sat 11 Mar 2017 12 28 53 GMT Server Apache 2 2 14 Win32 Warning 299 foo com api v1 Deprecated API use foo com api v1 1 instead Old API maintained until 2017 06 02 Content Length 88 Content Type application json Connection Closed Der Client sollte die Warnung im Log und in einer OpsDB protokollieren um es dem Betreiber des Clienten zu ermoglichen rechtzeitig auf die neue API umzustellen Wird der alte Endpunkt weiter angeboten sollte der neue Endpunkt mittels eines HTTP Redirects unter der alten Adresse auffindbar sein GET api v1 customer 1234 HTTP 1 1 Host foo com Accept application xml application json HTTP 1 1 302 Found Location foo com api v1 1 customer 1234 Grundsatzlich ist es empfehlenswert vor dem Auflassen eines obsoleten Endpunktes mittels Monitoring zu prufen ob dieser Endpunkt noch aktiv verwendet wird Zudem sollte mittels OpsDB gepruft werden ob es sich um einen Endpunkt handelt der nur selten z B Quartalsweise verwendet wird HATEOAS Bearbeiten Hauptartikel HATEOAS HATEOAS steht fur Hypermedia as the Engine of Application State und ist ein Entwurfsprinzip von REST Architekturen Bei HATEOAS navigiert der Client einer REST Schnittstelle ausschliesslich uber URLs die vom Server bereitgestellt werden 9 Abhangig von der gewahlten Reprasentation geschieht die Bereitstellung der URIs uber Hypermedia also z B in Form von href und src Attributen bei HTML Dokumenten bzw HTML Snippets oder in fur die jeweilige Schnittstelle definierten und dokumentierten JSON bzw XML Attributen Elementen Abstrakt betrachtet stellen HATEOAS konforme REST Services einen endlichen Automaten dar dessen Zustandsveranderungen durch die Navigation mittels der bereitgestellten URIs erfolgt Durch HATEOAS ist eine lose Bindung gewahrleistet und die Schnittstelle kann verandert werden Im Gegensatz dazu kommuniziert ein SOAP basierter Webservice uber ein fixiertes Interface Fur eine Anderung des Service muss hier eine neue Schnittstelle bereitgestellt werden und in der Schnittstellenbeschreibung ein WSDL Dokument definiert werden Registrierungsdatenbanken oder ahnliche Infrastrukturen die z B bei Remote Function Call erforderlich sind werden bei HATEOAS nicht benotigt Zur Abbildung von HATEOAS gibt es unterschiedliche Standards Hierzu gehoren 10 JSON API JSON LD und Hydra Collection JSON SirenBeispiel Bearbeiten Im Beispiel sieht man einen GET Request der Konto Informationen im JSON Format abruft GET accounts 123abc HTTP 1 1 Host bank example com Accept application json Die Antwort bei einem ausgeglichenen Konto kann dann wie folgt lauten HTTP 1 1 200 OK Content Type application json Content Length account account id 123abc balance currency EUR value 100 0 links deposit accounts 123abc deposit withdraw accounts 123abc withdraw transfer accounts 123abc transfer close accounts 123abc close Beispielantwort 1Die Beispielantwort 1 beinhaltet vier mogliche Links deposit einzahlen withdraw abbuchen transfer uberweisen und close kundigen Wenn das Konto uberzogen ist kann nur noch Geld auf das Konto eingezahlt werden aber keines mehr abgebucht oder uberwiesen werden und man kann das Konto nicht mehr kundigen Die Antwort bei einem uberzogenen Konto kann daher so aussehen HTTP 1 1 200 OK Content Type application json Content Length account account id 123abc balance currency EUR value 100 0 links deposit accounts 123abc deposit Beispielantwort 2Richardson Maturity Model BearbeitenDas Richardson Maturity Model RMM deutsch Richardson Reifegradmodell ist ein von Leonard Richardson entwickelter Massstab der angibt wie strikt ein Service REST implementiert Richardson Maturity Model 11 Level Eigenschaften0 verwendet XML RPC oder SOAP der Service wird uber einen einzelnen URI adressiert verwendet eine einzelne HTTP Methode oft POST 1 verwendet verschiedene URIs und Ressourcen verwendet eine einzelne HTTP Methode oft POST 2 verwendet verschiedene URIs und Ressourcen verwendet mehrere HTTP Methoden3 basiert auf HATEOAS und verwendet daher Hypermedia fur Navigation verwendet verschiedene URIs und Ressourcen verwendet mehrere HTTP MethodenAbgrenzung zu anderen Kommunikationsmechanismen BearbeitenBei REST handelt es sich um ein Programmierparadigma welches mit verschiedenen Mechanismen implementiert werden kann Eine Neuerung ist dabei die Verwendung moglichst vieler HTTP Methoden in Verbindung mit der auszufuhrenden Aktion Im Gegensatz dazu wird zum Beispiel SOAP im Wesentlichen mit der POST Methode verwendet Der Unterschied liegt also mehr in der breiteren Verwendung von HTTP als Protokoll und URI als Identifizierungsmechanismus fur konkrete Objekte In der Vergangenheit wurden im Gegensatz dazu SOAP Schnittstellen RPC basiert aufgebaut Zu den Schwachen von SOAP gehoren dabei der recht grosse Overhead mit vielen Meta und wenig Nutzdaten sowie das rechenintensive Bauen der XML Nachrichten Daruber hinaus gibt es mittlerweile zahlreiche schwer zu uberblickende Substandards 12 Die engen Vorgaben von REST helfen dagegen gut strukturierte Dienste zu bauen und unterstutzen die Verwendung von Clean URLs Siehe auch BearbeitenJava API for RESTful Web Services JAX RS Web Application Description Language Beschreibungssprache fur REST basierte Dienste JSON RPC JSON basiertes RPC Protokoll Open Data Protocol OData OpenAPI Spezifikation zur Beschreibung von REST SchnittstellenLiteratur BearbeitenLeonard Richardson Sam Ruby Web Services mit REST O Reilly Verlag 2007 ISBN 978 3 89721 727 0 Stefan Tilkov et al REST und HTTP Entwicklung und Integration nach dem Architekturstil des Web 3 aktualisierte und erweiterte Auflage dpunkt Verlag 2015 ISBN 978 3 86490 120 1 Weblinks BearbeitenRoy Thomas Fielding Architectural Styles and the Design of Network based Software Architectures Abgerufen am 6 April 2013 englisch Dissertation in der REST beschrieben wird Roy Thomas Fielding REST APIs must be hypertext driven 20 September 2008 abgerufen am 7 April 2013 englisch Empfehlungen zum Entwerfen von REST Schnittstellen mit HATEOAS David Megginson The quick pitch In Quoderat 15 Februar 2007 abgerufen am 6 April 2013 englisch Pragmatische Empfehlungen fur die Anwendung von REST Thomas Bayer REST Web Services Orientation in Objects November 2002 abgerufen am 6 April 2013 Einfuhrung in RESTful Web Services Alex Rodriguez RESTful Web services The basics In developerWorks IBM 6 November 2008 abgerufen am 6 April 2013 englisch Basisprinzipien von REST Stefan Tilkov REST Der bessere Web Service In jaxenter IT Republik Februar 2009 abgerufen am 6 April 2013 Grundlagen der REST Architektur Gregor Roth RESTful HTTP in practice InfoQ 18 August 2009 abgerufen am 6 April 2013 englisch REST in der Praxis Einzelnachweise Bearbeiten Roy Fielding 6 Experience and Evaluation In Architectural Styles and the Design of Network based Software Architectures 2000 abgerufen am 15 Juni 2015 englisch Roy Thomas Fielding Architectural Styles and the Design of Network based Software Architectures Dissertation 2000 Volltext PDF 0 9 MB abgerufen am 6 Januar 2021 Roy Thomas Fielding Architectural Styles and the Design of Network based Software Architectures Dissertation 2000 S 79 ff Fielding et al RFC 2616 Hypertext Transfer Protocol HTTP 1 1 Juni 1999 Abschnitt 9 Method Definitions englisch WebDAV Methods In MSDN Juni 2007 abgerufen am 13 Februar 2016 englisch Fielding et al RFC 2068 Hypertext Transfer Protocol HTTP 1 1 Januar 1997 englisch RFC 7252 The Constrained Application Protocol CoAP Juni 2014 englisch RFC 7234 Hypertext Transfer Protocol HTTP 1 1 Caching Juni 2014 Abschnitt 5 5 Warning englisch Andreas Wurl Jorg Adler Hochster Reifegrad fur REST mit HATEOAS Heise 6 Dezember 2016 abgerufen am 6 Januar 2021 Kevin Sookocheff On choosing a hypermedia type for your API HAL JSON LD Collection JSON SIREN Oh My 11 Marz 2014 abgerufen am 11 Juni 2017 englisch Martin Fowler Richardson Maturity Model 18 Marz 2010 abgerufen am 7 April 2013 englisch Erklarung des REST Maturity Models RMM Martin Helmich RESTful Webservices 1 Was ist das uberhaupt 12 Marz 2013 abgerufen am 16 November 2017 Webserver SchnittstellenProtokolle CGI SCGI FastCGI AJPAPIs C NSAPI C ASAPI C ISAPI Java Servlet ASP NET Python WSGI Ruby Rack JavaScript JSGI Perl PSGI Lua WSAPI Apache Module mod jk mod lisp mod parrot mod perl mod php mod python mod wsgi mod ruby Phusion Passenger Web APIs WSDL XML RPC SOAP REST Normdaten Sachbegriff GND 7592728 7 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Representational State Transfer amp oldid 235398730