Was unterscheidet oData von einem REST-Service?

14

Ich habe vor, eine Web-Service-API zu schreiben, und ich denke darüber nach, einen REST-Service zu erstellen. Was bedeutet OData in diesem Zusammenhang? Können Sie bitte den Unterschied zwischen OData und REST erklären?

gyurisc
quelle
siehe: odata.org
NoChance

Antworten:

11

REST ist eine Architektur zum Senden von Nachrichten von einem Client an einen Server über HTTP. OData ist ein Standard , der von Microsoft verfochten , die eine REST - Architektur nutzt insbesondere senden Arten von Nachrichten über HTTP. OData spricht darüber, wie die Nachrichten aussehen (der Inhalt). REST ist die Architektur, wie diese Nachrichten hin und her gesendet werden.

RationalGeek
quelle
5

Ich stimme sowohl @jkohlhepp als auch @Tom Squires zu, werde aber noch einige Details hinzufügen.

OData ist ein offener Standard (von Microsoft unterstützt, aber über Microsoft hinaus übernommen und für viele Plattformen verfügbar, einschließlich iOS und Android).

OData-Payloads basieren auf den Formaten Atom (Lesen) und AtomPub (Aktualisieren). (Abgesehen davon ist Atom auch die Basis für ein beliebtes RSS-Feed-Format.) Atom ist erweiterbar, und OData hat dies genutzt, um bekannte Erweiterungen zu erstellen. Bei einem OData-Dienst gibt es beispielsweise URI-Konventionen mit vielen Funktionen, z. B. Filtern (Filtern nach Datum oder Kundenname) und Sortieren usw. Die standardmäßige Verwendung dieser speziellen Konventionen (OData-definiert) macht OData leistungsfähig, da sie sich ähnlich verhalten und wir Tools erstellen können, um gegen sie und dergleichen vorzugehen.

Es stehen einige bekannte OData-Quellen zur Verfügung, beispielsweise von Netflix (alle Filmdaten sind vorhanden - es kann Spaß machen, damit zu spielen!).

Lesen Sie alles über OData auf odata.org .

Viel Glück! -Rechnung

Codierungslautstärke
quelle
4

REST ist ein Architekturstil zum Erstellen von Webdiensten. Es ist nur ein Modell, das besagt, dass Sie HTTP und seine Verben (POST / PUT / GET usw.) verwenden können, um CRUD für Ressourcen durchzuführen, die von Ihren Diensten verfügbar gemacht werden. Wie die URLs aussehen sollen, wie Anforderungs- / Antwortformate aussehen sollen, wie Informationen abgefragt werden sollen oder auf einer grundlegenden Ebene, welche Vorgänge und Ressourcen ein Dienst überhaupt unterstützt, fehlt REST jedoch!

In der Welt der XML-basierten Webdienste verfügen wir über SOAP, WSDL und WS- *, die die Standards definieren, die die Interoperabilität zwischen verschiedenen Diensten und deren Clients ermöglichen.

OData versucht dies für die REST-basierten Webdienste.

Sie definiert $ metadata im CSDL-Format, um zu erläutern, welche (Entitäts- / Komplex-) Typen Ihr Dienst unterstützt und welche Eigenschaften er hat, welche Datentypen Ihre Typen haben und ob Ihr Dienst auch einige spezielle Operationen unterstützt, die über das herkömmliche CRUD hinausgehen.

OData standardisiert die URL-Formate für Ihre Ressourcen, dh / Entity, / Entity ('id') oder / Entity (key1 = value1, key2 = value2) ... und so weiter.

OData standardisiert die Anforderungs- / Antwortformate in JSON und AtomXml hinsichtlich der Struktur der Daten und ihrer Metadaten.

OData spezifiziert auch eine sehr umfangreiche Abfragesprache, mit der Verbraucher Ihre Dienste nach genauen Informationen abfragen können, die sie suchen - mithilfe von $ filter, $ orderby, $ skip, $ top, $ expand.

Mit OData können Sie Ihr gesamtes Datenmodell - Entitäten und ihre Beziehungen beschreiben und alle Arten von Vorgängen wie CREATE, UPDATE, DELETE, GET, MERGE und sogar CUSTOM OPERATIONS für diese Entitäten und / oder Beziehungen unterstützen.

OData v4 ist jetzt ein OASIS-Standard, der gegenüber früheren Versionen zahlreiche Verbesserungen aufweist. Das Ökosystem für OData wächst langsam.

Anil G
quelle
2

OData ist ein Standard, der mit REST implementiert wird.

Tom Squires
quelle