webentwicklung-frage-antwort-db.com.de

Unterschied zwischen OData und REST Web Services

Bei der Suche nach einigen Webdiensten bin ich auf diese "neue" Technologie gestoßen, die Microsoft OData nennt. Wenn ich ihre Beschreibung in den FAQ zu OData durchlese, fällt es mir schwer, OData von REST-vollen Webdiensten zu unterscheiden. Könnte mir jemand helfen, die Unterschiede zu verstehen?

192
Scott

[~ # ~] update [~ # ~] Achtung, diese Antwort ist extrem veraltet, da OData V4 jetzt verfügbar ist.


Ich habe vor einiger Zeit einen Beitrag zu diesem Thema geschrieben hier .

Wie Franci sagte, basiert OData auf Atom Pub. Sie haben jedoch einige Funktionen überlagert und leider einige der REST Einschränkungen im Prozess ignoriert .

Für die Abfragefunktion eines OData-Dienstes müssen Sie URIs auf der Grundlage von Informationen erstellen, die nicht verfügbar oder in der Antwort verknüpft sind. Es ist das, was REST Leute Out-of-Band-Informationen nennen und eine versteckte Kopplung zwischen Client und Server einführen.

Bei der anderen eingeführten Kopplung werden EDMX-Metadaten verwendet, um die im Eintragsinhalt enthaltenen Eigenschaften zu definieren. Diese Metadaten können an einem festen Endpunkt namens $ metadata ermittelt werden. Auch hier muss der Kunde dies im Voraus wissen, es kann nicht entdeckt werden.

Leider hielt Microsoft es nicht für angebracht, Medientypen zur Beschreibung dieser wichtigen Datenelemente zu erstellen. Daher muss jeder OData-Client eine Reihe von Annahmen über den Dienst, mit dem er spricht, und die empfangenen Daten treffen.

95
Darrel Miller

Das OData-Protokoll baut auf dem AtomPub-Protokoll auf. Das AtomPub-Protokoll ist eines der besten Beispiele für das REST API-Design. In gewissem Sinne haben Sie Recht - die OData sind nur eine weitere REST API und jede Die OData-Implementierung ist ein REST-vollständiger Webdienst.

Der Unterschied besteht darin, dass OData ein bestimmtes Protokoll ist. REST ist Architekturstil und Entwurfsmuster.

62
Franci Penov

REST ist eine generische Entwurfstechnik, mit der beschrieben wird, wie auf einen Webdienst zugegriffen werden kann. Mit REST können Sie http-Anfragen zum Abrufen von Daten stellen. Wenn Sie es in Ihrem Browser versuchen, würde dies wie das Aufrufen einer Website aussehen, außer dass Sie eine Webseite zurückgeben Services geben auch Daten im JSON-Format zurück, das mit Javascript einfacher zu verwenden ist.

OData ist eine spezielle Technologie, die Daten über REST verfügbar macht.

Wenn Sie es ganz schnell zusammenfassen möchten, stellen Sie es sich wie folgt vor:

  • REST - Entwurfsmuster
  • OData - Technologie, die es ermöglicht
30
Rush Frisby

2012 wurde OData standardisiert, daher füge ich hier nur ein Update hinzu.

Zuerst die Definitionen:

REST - ist eine Architektur zum Senden von Nachrichten über HTTP.

OData V4 - ist eine spezielle Implementierung von REST, die den Inhalt der Nachrichten in verschiedenen Formaten definiert (derzeit denke ich, ist AtomPub und JSON). ODataV4 folgt den Restprinzipien.

Beispielsweise verwenden die Benutzer von asp.net meistens den WebApi-Controller, um Objekte in JSON zu serialisieren/zu deserialisieren und Javascript etwas damit zu tun. Der springende Punkt bei Odata ist die direkte Abfrage von der URL mit sofort verfügbaren Optionen.

19
tatigo

Aus den OData Dokumentation :

Das OData-Protokoll ist ein Protokoll auf Anwendungsebene für die Interaktion mit Daten über RESTful-Webdienste.

...

Das OData-Protokoll unterscheidet sich von anderen REST-basierten Webservice-Ansätzen darin, dass es eine einheitliche Methode zur Beschreibung sowohl der Daten als auch des Datenmodells bietet.

9
mcanti

ODATA ist eine spezielle Art von REST wo wir können Daten abfragen einheitlich von URL.

4
Minh Nguyen

OData (Open Data Protocol) ist ein OASIS-Standard, der die bewährten Methoden zum Erstellen und Verwenden von RESTful-APIs definiert. Mit OData können Sie sich beim Erstellen von RESTful-APIs auf Ihre Geschäftslogik konzentrieren, ohne sich Gedanken über die Vorgehensweise beim Definieren von Anforderungs- und Antwortheadern, Statuscodes, HTTP-Methoden, URL-Konventionen, Medientypen, Nutzlastformaten und Abfrageoptionen usw. machen zu müssen Verfolgen von Änderungen, Definieren von Funktionen/Aktionen für wiederverwendbare Prozeduren und Senden von asynchronen/Batch-Anforderungen usw. Darüber hinaus bietet OData die Möglichkeit zur Erweiterung, um alle benutzerdefinierten Anforderungen Ihrer RESTful-APIs zu erfüllen.

OData RESTful APIs sind einfach zu verwenden. Die OData-Metadaten, eine maschinenlesbare Beschreibung des Datenmodells der APIs, ermöglichen die Erstellung leistungsfähiger generischer Client-Proxys und -Tools. Einige von ihnen können Ihnen bei der Interaktion mit OData helfen, auch wenn Sie nichts über das Protokoll wissen. Die folgenden 6 Schritte veranschaulichen 6 interessante Szenarien des OData-Verbrauchs auf verschiedenen Programmierplattformen. Wenn Sie jedoch kein Entwickler sind und einfach mit OData spielen möchten, ist XOData der beste Start für Sie.

weitere Informationen finden Sie unter http://www.odata.org/

3
RajeshVerma

REST steht für RE presentational S tate T ransfer ist ein ressourcenbasierter Architekturstil. Ressourcenbasiert bedeutet, dass Daten und Funktionen als Ressourcen betrachtet werden.

OData ist ein webbasiertes Protokoll, das eine Reihe von Best Practices zum Erstellen und Verwenden von RESTful-Webdiensten definiert. OData ist eine Möglichkeit, REST-konforme Webdienste zu erstellen, also eine Implementierung von REST.

2
Ishara