Ich versuche zu verstehen, worum es bei Odata geht und wann es Sinn macht. Derzeit verwende ich ASP.NET und den MVC / WebApi-Controller, um Objekte in JSON zu serialisieren / zu deserialisieren und Javascript etwas damit zu tun.
Nach allem, was ich sagen kann, besteht der Vorteil von OData darin, direkt von der URL abfragen zu können ... Aber da ich den Client- und Server-Code schreibe, besteht keine Notwendigkeit dafür.
Würde jemand jemals die Ergebnisse einer ODaya-Abfrage in Javascript analysieren?
Vielleicht geht es bei OData mehr darum, einen allgemeinen Endpunkt für ALLE Clients bereitzustellen, um detaillierte Informationen aus einer Abfrage zu erhalten, die JSON nicht bereitstellt? Wenn ich also ein Datenanbieter wäre, würde ich annehmen, dass Odata genau für diese Zwecke bestimmt ist.
Helfen Sie mir, den Zweck und die Verwendung von REST / JSON / ODATA zu verstehen.
quelle
Antworten:
JSON ist nur ein auf JavaScript basierendes Datenaustauschformat.
REST ist ein Architekturstil, während OData eine spezielle Implementierung von REST zum Generieren und Konsumieren von Daten ist, die zwei Formate unterstützt, AtomPub und JSON.
Der Unterschied zwischen JSON mit einfachem REST und OData sind die Optionen in OData für die Datenbearbeitung. Wenn wir beispielsweise Daten mit dem OData-Protokoll abfragen, können wir die folgenden Optionen in der URI angeben.
Wir können Projektionen durchführen, Ressourcen verknüpfen usw. Alle diese Optionen sind sofort verfügbar. Stellen Sie sich nun vor, wir müssten alle diese Funktionen in unserem eigenen REST-Service bereitstellen.
Es ist nicht nur viel Arbeit, sondern führt auch zu Inkonsistenzen und schafft eine Lernkurve für unsere Datenkonsumenten.
quelle
Die JSON- oder JavaScript-Objektnotation ist lediglich ein Format oder ein Standard für Daten. Es handelt sich um ein vereinbartes Format für die Übermittlung eines Anmeldenamens ODER von Daten, die von einem REST-Service verwendet werden müssen.
Siehe diesen Teil: http://en.wikipedia.org/wiki/JSON
Es ist kein Teil einer bestimmten Programmiersprache, daher können verschiedene Systeme Daten sehr leicht weitergeben, wenn sie wissen, dass sie JSON verwenden.
Bei REST handelt es sich lediglich um einen Architekturstil, der für Webdienste verwendet wird.
Siehe diesen Teil: http://en.wikipedia.org/wiki/Representational_state_transfer
Eine Möglichkeit, darüber nachzudenken, besteht darin, einen Webdienst zu schreiben, mit dem viele verschiedene Computer kommunizieren und Informationen austauschen können. Sie können Ihren Webdienst so schreiben, dass er Daten über die URL akzeptiert
Die Antwort könnte ein JSON-Objekt sein, das signalisiert, dass Ihre Daten empfangen wurden.
Ich hatte noch nie von OData gehört und habe es gegoogelt:
Klingt so, als ob OData etwas ist, das eine Vanille-REST-Architektur erweitert. Aber es sieht so aus, als ob es Ihnen ein paar zusätzliche Dinge bieten kann, die Sie zum Laufen bringen, anstatt Dinge in C # oder einer anderen Sprache von Grund auf neu schreiben zu müssen.
Wenn Sie sich für die Verwendung von OData engagieren, würden Sie weiterhin JSON verwenden, jedoch innerhalb des OData-Frameworks / Standards von Microsoft et al.
Ja, da (wie es klingt) es JSON verwendet. Es wäre völlig natürlich, JS zu verwenden.
Odata würde einen REST-Dienst bereitstellen, aber mit einigen zusätzlichen Standarddiensten zusätzlich zu einem einfachen "generischen" REST-Dienst-Endpunkt. Kunden ist es egal, ob Sie OData verwenden oder Ihren eigenen C # -Dienst so lange rollen als die Antworten in einem vereinbarten Format (wie JSON) waren. Für Ihre Arbeit möchten sie jedoch möglicherweise OData verwenden, da es viele "out-of-the-box" -Funktionen bietet.
quelle
Für die "Warum" -Frage gibt es im Buch RESTful Web APIs eine wirklich gute Definition - im Wesentlichen implementiert OData ein Sammlungsmuster, wobei eine Sammlung eine Ressource ist, die eine Liste von Ressourcen über Links bereitstellt.
quelle
OData ist eine spezifische Implementierung des RESTful-Service mit einem Standard für die Schnittstelle. Der Vorteil besteht darin, dass Sie die API Ihres Produkts verfügbar machen und sagen, dass sie dem OData-Standard entspricht. Benutzer, die bereits mit OData vertraut sind, können sie problemlos verwenden, ohne viel Zeit mit dem Lesen der API-Dokumentation zu verbringen.
Nachteil: Während OData die zugrunde liegende Datenbank hervorragend verfügbar macht, enthält die Spezifikation keine Unterstützung für Transaktionen und kann nicht in Anwendungen verwendet werden, in denen ein RESTful-Service sowohl als DB-Schnittstelle als auch als Transaktionsschnittstelle dienen kann.
quelle