Warum benötigen wir RESTful Web Services?
Werde ich lernen, RESTful-web-services (es ist besser zu sagen, dass ich ' ll haben, dies zu tun, weil es ein Teil von CS-master-Studiengang).
Gelesen habe ich einige Infos in der Wikipedia und ich habe auch einen Artikel gelesen, über den REST bei Sun Developer Network, und ich sehe, dass es nicht einfach Technologie, gibt es spezielle frameworks zum erstellen von RESTful-Anwendungen, und es ist oft im Vergleich zu SOAP-web-services und Programmierer verstehen sollten, wenn Sie verwenden SEIFE und beim REST könnte nett sein Ansatz.
Ich erinnere mich, dass vor einigen Jahren SEIFE war sehr beliebt (modische?) und item 'SEIFE' hatte, präsent zu sein in jedem guten Lebenslauf. Aber in der Praxis nur sehr selten verwendet und für die Erreichung sehr einfache Zwecke.
Scheint es mir, der REST ist ein weiteres "Letzte Wort der Mode' (oder ich kann Total falsch liegen, weil ich noch nie gesehen, REST in der Praxis).
Können Sie mir einige Beispiele wurden REST sollte verwendet werden und warum können wir nicht das gleiche tun ohne REST (oder warum sollten wir verbringen viel mehr Zeit, das gleiche zu tun ohne REST)?
UPD: Leider kann ich nicht sehen, keine konkreten Argumente, die Blasen kann meine Meinung in der ersten Kommentare. Ich denke, der REST ist genial Technologie!
Ich würde gerne sehen, Antworten wie diese:
War ich die Entwicklung ein weiterer Komplex
Anwendung "HelloWorld", und wir müssen
übertragen viele /kleine Daten und ich
vorgeschlagenen REST-Lösung zu meiner Kollegin:– Oh, verdammt! Jonny, wir sollten
natürlich verwenden, REST für die Umsetzung
diese app!
– Ja, Billy, wir
können REST, aber wir hätten besser nutzen
SEIFE. Vertrauen Sie mir, weil ich weiß, etwas
über die Entwicklung von HelloWorld
- Anwendungen.
– Aber SEIFE ist
altmodische Technik aus dem letzten
Jahrhundert, und wir können besser
ein.
– Billy, bist du bereit
verbrachten 3 Tage für das Experimentieren mit
REST? Wir können dies tun, mit der SEIFE in 2
Stunden..
– ja, ich bin mir sicher, dass
dass wir dann mehr Zeit zu
erreichen der gleichen Sicherheit/Leistung/
/Skalierbarkeit/was sonst mit SEIFE.
Ich bin mir sicher, dass HelloWorld-Anwendungen
entwickelt werden sollte nur mit dem REST
ab jetzt.
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
REST sollte verwendet werden, wenn es ist sehr wichtig für Sie zu Minimierung der Kopplung zwischen client-und server-Komponenten in einer verteilten Anwendung.
Dies kann der Fall sein, wenn Ihre server verwendet werden soll von viele verschiedene clientsdass Sie nicht die Kontrolle über. Es kann auch der Fall sein, wenn Sie wollen in der Lage sein, um aktualisieren Sie den server regelmäßig ohne dass ein update der client-software.
Ich kann Ihnen versichern, dass die Erreichung dieses niedrige Niveau der Kopplung ist nicht einfach. Es ist wichtig zu beachten Sie alle Einschränkungen der REST um erfolgreich zu sein. Die Aufrechterhaltung einer rein zustandslose Verbindung ist schwierig. Die Auswahl der richtigen Medien-Typen und drückte Ihre Daten in den Formaten schwierig ist. Erstellen Sie Ihre eigenen Medien-Typen kann sogar härter sein.
Anpassung reichen server-Verhalten in die einheitliche HTTP-Schnittstelle kann verwirrend sein, und zuweilen scheint pedantisch im Vergleich zu den relativ einfachen RPC-Ansatz.
Trotz der Schwierigkeiten, die Vorteile sind, dass Sie einen Dienst, der einem client-Entwickler sollten in der Lage sein, leicht zu verstehen, durch die konsequente Verwendung des HTTP-Protokolls. Sollte der Dienst leicht erkennbar durch hypermedia und der client sollte extrem widerstandsfähig gegenüber änderungen auf dem server.
Die Vorteile von hypermedia und die Vermeidung von session-Zustand macht, load balancing, einfach und service-Partitionierung möglich. Die strenge Konformität zu HTTP-Regeln sorgen dafür, dass die Verfügbarkeit von Werkzeugen wie Debugger und caching-proxies wunderbare Sache.
Update
Ich denke REST ist Mode geworden, weil Menschen, die versuchen zu tun, SOA-Art-Projekte haben gefunden, dass die Verwendung der SOAP-stack Sie sind und erkennen nicht die Vorteile, die versprochen wurden. Die Menschen halten sich zurück, um das web als ein Beispiel der einfachen integration von Methoden. Leider, ich glaube, die Leute unterschätzen die Menge Planung und Voraussicht, die ging in die Schaffung der web-und Sie übermäßig vereinfachen, was getan werden muss, um zu erlauben, die Art der glückliche Wiederverwendung, die auftreten, werden auf die web.
Sagen Sie, dass Sie nie gesehen haben, REST in der Praxis, aber das kann unmöglich wahr sein, wenn Sie jemals mit einem web-browser. Der web-browser ist eine REST-client.
update, wenn jemand ändert ein paar html
auf einer web-site?
Seiten einer web-site und der "client"
noch Zugriff auf die neuen Seiten
ohne ein update?
"service-Beschreibung-Sprache", um die
web-browser zu sagen, wenn es geht
zu http://example.org/images/cat ,
der Rückgabetyp wird ein jpeg-Bild
und wenn Sie gehen, um
http://example.org/description/cat
der return-type text/html?
Seiten, die nicht existieren, wenn die
browser veröffentlicht wurde? Wie kann die
Kunden wissen über diese Standorte?
Diese klingt vielleicht dumme Fragen, aber wenn Sie die Antwort wissen, dann können Sie beginnen, um zu sehen, was REST ist alles über.
Blick auf StackOverflow weitere Vorteile von REST. Wenn ich auf der Suche bin eine Frage, ich kann die Lesezeichen die Seite oder senden Sie die url an einen Freund und er kann dieselben Informationen sehen. Er muss nicht durch die Website navigieren zu finden, die Frage.
StackOverflow verwendet eine Vielzahl von OpenId-Dienste für die Authentifizierung, gravatar.com für avatar-Bilder, google-analytics und Quantserve für analytische Informationen. Diese Art von multi-Einbindung von Unternehmen ist die Art von Sache, die SOAP-Welt nur Träume von. Eines der besten Beispiele ist die Tatsache, dass die jQuery-Bibliotheken, die verwendet werden, um zu fahren StackOverflow UI, abgerufen aus dem Google-Content-Delivery-Netzwerk. Die Tatsache, dass SO konnte direkt den client (z.B. Ihr Webbrowser), um den download-code von einer Drittanbieter-Website zur Verbesserung der Leistung ist ein Beweis für die geringe Kopplung zwischen web-client und-server.
Diese sind Beispiele einer REST-Architektur bei der Arbeit.
Nun einige web-sites /- Anwendungen die Regeln brechen, der REST und dann der browser nicht wie erwartet funktioniert.
ist durch die Verwendung von server side
session state.
Sie haben server-Seite den Sitzungsstatus.
URL-spezifisch identifizieren eines
Darstellung.
Browser ist schlecht, Konformität zu
media-Art-standards. Wir hören alle
die Zeit über, wie IE6 werden muss
getötet. Das problem dort ist, dass
standards wurden nicht korrekt befolgt werden,
oder ignoriert wurden, warum auch immer.
Quelle vieler Sicherheitslücken.
REST ist überall. Es ist der Teil der Webseite, dass macht es gut funktioniert. Wenn Sie möchten, erstellen verteilter Anwendungen, die skaliert werden können, wie das Internet, werden belastbarer zu ändern, wie die web-und die Förderung von Wiederverwendung, wie das web gemacht hat, dann Folgen Sie die gleichen Regeln, die Sie haben beim erstellen von web-Browsern.
InformationsquelleAutor der Antwort Darrel Miller
REST wurde gekickt, meines Wissens nach, von Roy Fielding ' s dissertation Architektonische Stile und Design von Netzwerk-basierten Software-Architekturendas ist Wert, gelesen zu werden, wenn Sie noch nicht angeschaut.
Oben in der dissertation ist ein Zitat:
Fast jeder fühlt sich im Frieden mit der Natur: hören Sie den Ozean
Wellen gegen das Ufer, von einem stillen See, in einem Feld von gras, auf einer
windblown Heide. Eines Tages, wenn wir gelernt haben, die zeitlos
wieder, wir fühlen das gleiche über unseren Städten, und wir werden spüren, wie
viel Frieden, wie wir heute zu Fuß durch das Meer, oder
ausgestreckt in das hohe gras einer wiese.
— Christopher Alexander, der Die Zeitlose Art zu Bauen (1979)
Wirklich funktioniert Summe es oben. REST ist in vielerlei Hinsicht eleganter.
SOAP ist ein Protokoll, das oberhalb von HTTP, so umgeht er eine Menge von HTTP-Konventionen, um neue Konventionen in der SEIFE, und ist in eine Reihe von Möglichkeiten, redundant mit HTTP. HTTP, jedoch, ist mehr als ausreichend für retreiving, suchen, schreiben und löschen von Daten via HTTP, und das ist eine Menge von dem, was RUHE ist. Denn REST ist gebaut mit HTTP statt oben drauf, es bedeutet auch, dass software, die integrieren will (wie ein Webbrowser) muss nicht verstehen, SEIFE zu tun, nur HTTP, das hat am meisten verstanden und integriert werden-mit dem Protokoll an dieser Stelle.
InformationsquelleAutor der Antwort quillbreaker
Vom hier:
REST Vorteile:
Überprüfen Sie auch diese aus:
InformationsquelleAutor der Antwort
Kann ich sicher sagen, ich habe viel Zeit damit verbracht, um dies zu verstehen als ein Anfänger, aber dieser ist der beste link zu starten mit dem REST von Grund auf neu! http://www.codeproject.com/Articles/21174/Everything-About-REST-Web-Services-What-and-How-Pa
Nur, Sie ziehen,
InformationsquelleAutor der Antwort
Meisten "pro" Antworten zu RUHE zu kommen scheint, von Menschen, die haben nie entwickelt, eine SOAP-Webservice-oder client-Umgebung, die liefert entsprechende tools für die Aufgabe. Sie beschweren sich über Probleme, ich habe einfach noch nie begegnet, die mit Visual Studio .NET und IBM Rational Web Developer. Ich nehme an, dass, wenn Sie für die Entwicklung von web services oder clients, die eine scripting-Sprache, oder eine andere Sprache mit wenig oder ohne tool-Unterstützung, dass diese gültig sind Beschwerden.
Ich muss auch zugeben, dass einige der "pro" Punkte klingen wie Dinge, die vielleicht wahr sein könnte - aber das habe ich noch nie gesehen, ein Beispiel, das zeigt Ihren Wert. Insbesondere würde ich es sehr zu schätzen, wenn jemand einen Kommentar mit einem link zu einem guten Beispiel für ein REST web service. Diese sollte eine sein, die verwendet mehrere Ebenen von Ressourcen, möglicherweise in einer Hierarchie, und die Medien benutzt Typen richtig. Vielleicht, wenn ich look bei a gutes Beispiel, ich werde verstehen, in dem Fall werde ich wieder hierher kommen und es zugeben.
InformationsquelleAutor der Antwort John Saunders
Hinzufügen, um eine leicht prosaische spin auf die bereits gegebenen Antworten der Grund, warum wir die Verwendung von REST-Diensten, wo ich bin, ist, dass, wenn Sie wissen, können Sie hand einem Geschäftspartner eine URL und wissen, dass Sie erhalten, im Gegenzug, ein hübsch Gedeckter Tafel von XML-egal, ob Sie arbeiten .Net-x.x, PHP, Python, Java, Ruby oder Gott-weiß-was es erheblich verringert Kopfschmerzen.
Es bedeutet auch, dass auf die non-techy Ende unsere Vertriebsmitarbeiter prahlen kann, unsere vielseitige API, um Menschen ohne ängste zu suchen, wie komplette muppets.
Viel, abgesehen von den technischen Vorteilen alles, was es einfach für ein nicht-techy, zu erklären, zu demonstrieren und sich dabei sicher fühlen, ist eine gute Sache. SEIFE, obwohl nur als Abkühlung für Technik-Freaks ist weit weniger zugänglich durch die non-techies und ist daher nicht so einfach zu "verkaufen".
Neige ich dazu zu bemerken, dass die Dinge nicht-techies können, bekommen Ihren Kopf Runde Verkleben neigen. Also ich bezweifle, dass der REST, wie eine Technik, die haftet so anfällig wie die SEIFE den Launen der Mode.
Aber alle Sachen über nicht setzen alles in einen REST-Dienst, die sollten gesperrt werden, ist doppelt wahr, wenn auch nur, weil die Technologie so einfach zu verstehen, wenn Menschen, die nicht so technisch aufgeschlossen.
InformationsquelleAutor der Antwort
Hier sind einige Ideen:
Unteren Zeile, REST entfernt viele der am meisten zeitaufwendig und umstritten, design und Umsetzung von Entscheidungen von Ihrem team den workflow. Es verschiebt Eure Aufmerksamkeit von Umsetzung Ihren Dienst zu Gestaltung. Und Sie tut es ohne häufen Kauderwelsch auf dem HTTP-Protokoll.
InformationsquelleAutor der Antwort Rich Apodaca
REST ist ein Architektur Stil für die Gestaltung von vernetzten Anwendungen. Die Idee ist, dass, anstatt mit Hilfe komplexer Mechanismen wie CORBA, RPC oder SOAP-Verbindung zwischen Maschinen, einfaches HTTP verwendet wird, um Anrufe zwischen den Maschinen.
Viele Möglichkeiten, die das World Wide Web selbst, basiert auf HTTP, kann gesehen werden, als einer REST-basierten Architektur.
RESTful Anwendungen verwenden HTTP-requests, post-Daten (erstellen und/oder update), Lesen von Daten (z.B. Abfragen), und die Daten löschen. So, REST verwendet HTTP für alle vier CRUD (Create/Read/Update/Delete) Operationen.
REST ist eine leichtgewichtige alternative zu Mechanismen wie RPC (Remote Procedure Calls) und Web Services (SOAP, WSDL, et al.). Später werden wir sehen, wie viel einfacher REST.
Trotz der einfachen, der REST ist mit vollem Funktionsumfang, es gibt im Grunde nichts, was Sie tun können, in Web-Dienste, die nicht getan werden kann mit einer RESTful Architektur.
REST ist nicht "standard". Es wird nie ein W3C-recommendataion für den REST, zum Beispiel. Und während es in der RESTLICHEN Programmier-frameworks, die die Arbeit mit REST ist so einfach, dass man oft "roll your own" mit dem standard-library-Funktionen in Sprachen wie Perl, Java oder C#.
InformationsquelleAutor der Antwort