Bei der Untersuchung einiger Webdienste 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-vollständigen Webdiensten zu unterscheiden. Könnte mir bitte jemand helfen, die Unterschiede zu verstehen?
web-services
rest
odata
Scott
quelle
quelle
Antworten:
UPDATE Warnung, diese Antwort ist jetzt, da OData V4 verfügbar ist, extrem veraltet.
Ich schrieb vor einiger Zeit einen Beitrag zu diesem Thema 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 basierend auf Informationen erstellen, die nicht verfügbar sind oder mit denen in der Antwort verknüpft ist. Es ist das, was REST-Leute Out-of-Band-Informationen nennen und eine versteckte Kopplung zwischen Client und Server einführen.
Die andere Kopplung, die eingeführt wird, ist die Verwendung von EDMX-Metadaten, um die im Eintragsinhalt enthaltenen Eigenschaften zu definieren. Diese Metadaten können an einem festen Endpunkt namens $ metadata ermittelt werden. Auch hier muss der Client dies im Voraus wissen, es kann nicht entdeckt werden.
Leider hielt Microsoft es nicht für angebracht, Medientypen zur Beschreibung dieser wichtigen Daten zu erstellen. Daher muss jeder OData-Client eine Reihe von Annahmen über den Dienst, mit dem er spricht, und die Daten, die er empfängt, treffen.
quelle
Das OData-Protokoll basiert auf dem AtomPub-Protokoll. Das AtomPub-Protokoll ist eines der besten Beispiele für das REST-API-Design. In gewissem Sinne haben Sie Recht - die OData ist nur eine weitere REST-API, und jede OData-Implementierung ist ein REST-vollständiger Webdienst.
Der Unterschied besteht darin, dass OData ein bestimmtes Protokoll ist. REST ist Architekturstil und Designmuster.
quelle
REST ist eine generische Entwurfstechnik, mit der beschrieben wird, wie auf einen Webdienst zugegriffen werden kann. Mit REST können Sie http-Anforderungen stellen, um Daten abzurufen. Wenn Sie es in Ihrem Browser versuchen, ist es wie ein Besuch einer Website, außer dass Sie anstelle einer Webseite XML zurückerhalten. Einige Dienste 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 sich Folgendes vor:
quelle
2012 wurde OData standardisiert, daher füge ich hier einfach ein Update hinzu.
Zuerst die Definitionen:
REST - ist eine Architektur zum Senden von Nachrichten über HTTP.
OData V4 - ist eine spezifische Implementierung von REST, definiert wirklich den Inhalt der Nachrichten in verschiedenen Formaten (derzeit denke ich, ist AtomPub und JSON). ODataV4 folgt den Ruheprinzipien.
Zum Beispiel verwenden asp.net-Leute meistens den WebApi-Controller, um Objekte in JSON zu serialisieren / deserialisieren und Javascript etwas damit machen zu lassen. Der Punkt von Odata ist die Möglichkeit, direkt von der URL mit sofort einsatzbereiten Optionen abzufragen.
quelle
Aus der OData- Dokumentation :
quelle
Weitere Informationen finden Sie unter http://www.odata.org/.
quelle
ODATA ist eine spezielle Art von REST, bei der Daten einheitlich über die URL abgefragt werden können .
quelle
REST steht für RE Präsentations - S tate T ransfer , die eine Ressource basiert architektonischen Stil ist. Ressourcenbasiert bedeutet, dass Daten und Funktionen als Ressourcen betrachtet werden.
OData ist ein webbasiertes Protokoll, das eine Reihe von Best Practices für die Erstellung und Nutzung von RESTful-Webdiensten definiert. OData ist eine Möglichkeit, RESTful-Webdienste zu erstellen, also eine Implementierung von REST.
quelle