Was sind RESTful-Webdienste?

8

Ich habe versucht, zu lesen, was RESTful Webservices von Wikipedia etc, aber ich muss zugeben, dass ich es nicht verstehe. Es gibt einen Film, in dem Denzell Washington sagt: "Erklär es mir, als wäre ich 5 Jahre alt". Kann jemand das für mich in Bezug auf RESTful Dienste tun?

Bonuspunkte, wenn Sie den Namen des Films kennen.

    
Sachin Kainth 13.12.2011, 17:25
quelle

2 Antworten

21

Als ich mit REST anfing, hatte ich auch Schwierigkeiten, trotz aller Dokumentation das "große Bild" zu bekommen. Wie auch immer, hier ist meine kurze Vorstellung von REST:

  • REST ist ein Architekturstil zum Erstellen von Webdiensten.

  • REST baut auf HTTP auf. Ihr Webdienst macht Ressourcen in Form von URIs verfügbar. Ihr Dienst ermöglicht Clients, mit den Standard-HTTP-Verben auf Ihren Dienst zu reagieren (GET = die Ressource lesen, POST = die Ressource erstellen, PUT = die Ressource aktualisieren, DELETE = die Ressource löschen).

  • REST hat in den letzten Jahren vor allem aufgrund (a) seiner Einfachheit gegenüber anderen Stilen wie SOAP eine bedeutende Dynamik gewonnen. (b) Die Allgegenwart von HTTP. Da HTTP ein bewährter Standard ist, verfügen die meisten Sprachen über integrierte oder von Drittanbietern unterstützte HTTP-Unterstützung. Sie können nicht dasselbe über SOAP sagen.

  • Da es sich bei REST um einen Stil handelt und nicht um ein striktes Protokoll / Spezifikation, gibt es viel Raum für Interpretationen. Viele öffentliche Dienste, die sich selbst "REST" nennen, folgen dem Stil nicht genau.

EJK 13.12.2011, 17:43
quelle
4

REST-konforme Dienste sind Dienste, die den Status Repräsentation übertragen, daher der Name REpresentational State Transfer. Was das eigentlich bedeutet, ist, dass Daten in deklarativer Weise weitergegeben werden, das heißt, Sie bekommen, wonach Sie fragen.

REST unterscheidet sich von SOAP dadurch, dass es kein Protokoll ist, und es gibt keine formale Spezifikation. SOAP wurde erstellt, um den Datentransfer zwischen Anwendungen zu vereinfachen, indem eine gemeinsame Schnittstelle für den Remotezugriff auf Funktionen verwendet wird. Leider ist SOAP ziemlich kompliziert, SOAP-Anfragen zu erstellen ist nicht sehr einfach und erfordert das Parsen und Generieren von XML.

Stattdessen verwendet REST das Hyper Text Transfer Protocol (HTTP), um das Heavy Lifting durchzuführen. Webserver und Serverskripte sind bereits in der Arbeit mit HTTP integriert. Eine Anfrage mit REST zu stellen ist so einfach wie eine URL-Anfrage, wie zB eine Webseite zu besuchen. Die API für einen RESTful-Service kann alle HTTP-Methoden und Statuscodes , um Fehler zu melden. Anstatt auf Daten zuzugreifen, die in einer Datenbank durch ausgefallene Abfragen und speziellen Code gespeichert sind, ermöglichen REST-konforme Dienste einen Zugriff, der einem Standard-Dateisystem ähnlicher ist.

Der wichtigste Teil von RESTful-Diensten ist die Deklarativität. Eine Anfrage an GET /widgets/109340 wird wahrscheinlich die Daten für das Widget mit der ID 109340 erhalten. Ich sage "wahrscheinlich", weil es keine Garantie gibt. Es liegt an dem Implementierer. Der Punkt ist, dass Sie einen Blick auf die REST-Anfrage werfen können und wissen, was Sie erwartet haben. Mit SOAP ist es viel schwieriger zu sagen, ob Sie einen Syntaxfehler haben.

Wenn /widgets/109340 nicht existiert, kann der Server, statt einen Nachrichtentext mit einem bestimmten Wert zurückzugeben, der besagt, dass der Inhalt vorhanden ist, einen 404 Not Found -Code zurückgeben, und der Benutzer wird diese bestimmte ID kennen existiert nicht. Wenn 403 zurückgegeben wird, wird der Benutzer wissen, dass das Element vorhanden ist, aber keine Berechtigungen für den Zugriff darauf haben. Diese Anforderungsantwortcodes werden bereits von Programmen unterstützt, die URL-Anforderungen stellen, da sie allen Servern gemeinsam sind. Dies macht REST-Anforderungen viel widerstandsfähiger.

REST ist auch flexibel für das Ausgabeformat, /widgets/109340 könnte ein JSON-Objekt zurückgeben, aber es gibt keinen Grund, dass es keine Binärdaten, HTML, XML, SVG, Video oder andere Datenformate zurückgeben kann. Ein CDN könnte eine REST-API verwenden, um versionierten Inhalt bereitzustellen, der im Dateisystem gespeichert sein kann oder nicht: GET /jQuery/1.0.0 , GET /jQuery/1.7.1 und GET /jQuery/latest sind alle RESTful-Anfragen.

Ich gehe davon aus, dass Sie verstehen, was Simple Object Access Protocol (SOAP) ist >

    
zzzzBov 13.12.2011 19:52
quelle

Tags und Links