2010-10-16 19 views
6

Ich fange in der Web-Services-Welt, und ich habe ein paar Fragen:REST im Vergleich zu SOAP und im Vergleich zu einfacher Website, etc

  • Von dem, was ich gelesen habe, REST als einfacher verstanden werden könnte Rufen Sie eine URL an, die ein bestimmtes erwartetes Ergebnis liefert. Worin besteht der Unterschied zwischen einem REST-Webservice und einer einfachen Website?

  • Web-Services sind sprachunabhängig. Wenn ich also einen Java-basierten REST-Webservice mit einer Methode entwickle, die ein serialisiertes Klassenobjekt Person zurückgibt und mein Client eine .NET-Anwendung ist, wie kann dann diese Klasse auf der .NET-Seite rekonstruiert werden? Wie wird es in der Praxis gemacht? Muss ich eine Repräsentation des zurückgegebenen Objekts auf dem Web-Service erstellen und auf der .NET-Seite analysieren und erstellen?

  • In der Praxis, was ist der Unterschied zwischen REST-und SOAP-Anrufe?

+0

Sie sollten entweder mehr Kohärenz zwischen diesen Fragen einführen oder sie in separate Beiträge aufteilen. Als Q & A-Site ist SO sehr sauber und hat andere Regeln als ein Forum. –

Antwort

1

REST steht für Representative State Transfer. Es baut auf der Tatsache auf, dass das HTTP-Protokoll statuslos ist, und spezifiziert einige Methoden wie PUT/GET/POST usw. REST fügt diesen Methoden Semantiken hinzu. Zum Beispiel bedeutet ein GET "Lesen/Laden". PUT bedeutet "speichern". POST bedeutet "update". (Ich denke, ich habe das richtig ...)

Also REST ist kein Aufruf einer URL, REST ist ein Konzept. Sie verwenden REST, indem Sie Urls aufrufen. Der Unterschied zwischen REST und einer "einfachen Website" ist die REST-Semantik. Eine PUT-Anfrage bedeutet eine Sache, eine GET-Anfrage eine andere, etc.

RESTful Webservices sind sprachunabhängig, da sie vom HTTP-Protokoll abhängen; das ist es. Sie hängen nicht von irgendwelchen Sprachfunktionen ab, außer der Fähigkeit, das HTTP-Protokoll zu verwenden.

+2

Tatsächlich hängt HTTP RFC2616 Semantik an die Methoden an. REST erfordert nur, dass HTTP bei der Verwendung von HTTP konsistent der Integritätsbedingung "Uniform Interface" entspricht. REST ist eigentlich auch nicht abhängig von HTTP, aber in der Praxis wird das zu 99% genutzt. –

+0

@darrel, schöner Kommentar. – hvgotcodes

6

In der Richardson Maturity Model finden Sie eine Erklärung, was ein RESTful-Dienst ist.

alt text

erreichen Stufe 3 muss man die Hypermedia as the Engine of Application State. abrivated HATEOAS constraint (auch genannt Hypermedia constraint) erfüllen. Dies bedeutet, dass die meisten Dienste gibt nicht RESTful, aber merly CRUD Dienstleistungen ... und das ist gut ...

Eine gute Quelle auf REST REST in Practice

Der wesentliche Unterschied zwischen SOAP und REST ist, dass die REST-Service hat keine WSDL, die die "Operationen" definiert, Gott sei Dank. Doch die Datenstrukturen können durch eine Schemasprache wie Schematron, XSD für XML ...

+0

Die Erklärung der Hypermedia-Steuerelemente war ziemlich gut. Danke für die Verbindung. –

0
  • REST liefert strukturierte XML oder JSON-Daten definiert werden, die Sie nicht eine ganze Webseite zurückschicken, die hart sein könnte zu interpretieren, und wäre unnötig kompliziert.

  • Sie können XML- oder JSON-Daten in einem beliebigen Objekt in einer beliebigen Sprache mit einem Parser (einschließlich der .net-Sprachen) analysieren. Ein Objekt in diesem Sinne bedeutet kein vollwertiges .net-Objekt mit einer vtable usw.

  • SOAP überlädt die POST-Daten, die mit einer HTTP-Anfrage gesendet werden, und statt vieler URLs, an die Sie individuelle Anfragen senden, Sie haben nur eine URL, an die Sie einige XML-Daten senden. In Wirklichkeit ist der Unterschied meist semantisch.

+1

REST beschränkt den zurückgegebenen Medientyp nicht. Die Rückgabe von HTML ist in Wirklichkeit viel besser mit REST-Einschränkungen konform als die Rückgabe von application/xml und application/json und die Annahme semantischer Werte in diesen generischen Darstellungen. –

Verwandte Themen