Öffnen Sie das Datenprotokoll
Im Computer, Öffnen Sie das Datenprotokoll (Odata) ist offen Protokoll Dies ermöglicht die Erstellung und den Verbrauch von nachfragbarem und interoperables Verbrauch SICH AUSRUHEN Apis auf einfache und standardmäßige Weise. Microsoft Initiierte Odata im Jahr 2007.[1] Versionen 1.0, 2.0 und 3.0 werden unter dem freigegeben Microsoft Open Spezifikationsversprechen. Version 4.0 wurde bei standardisiert OASE,[2] mit einer Veröffentlichung im März 2014.[3] Im April 2015 reichte Oasis Odata V4 und Odata JSON Format V4 an ein ISO/IEC JTC 1 zur Genehmigung als internationaler Standard.[4] Im Dezember 2016 veröffentlichte ISO/IEC ODATA 4.0 Core als ISO/IEC 20802-1: 2016[5][6] und das Odata JSON-Format als ISO/IEC 20802-2: 2016.[7]
Das Protokoll ermöglicht die Erstellung und den Verbrauch von SICH AUSRUHEN APIs, mit denen Web -Clients Ressourcen veröffentlichen und bearbeiten können, identifiziert mit URLs und definiert in a Datenmodellmit einfachen HTTP -Nachrichten. Odata teilt einige Ähnlichkeiten mit JDBC und mit ODBC; Wie ODBC ist Odata nicht beschränkt auf relationale Datenbanken.
Standardisierung
Nach der anfänglichen Entwicklung durch Microsoft wurde ODATA zu einem standardisierten Protokoll des Oasis Odata Technical Committee (TC).
Oasis Odata Technischer Ausschuss
"Die Oasis Odata TC vereinfacht die Abfrage und gemeinsame Nutzung von Daten über unterschiedliche Anwendungen und mehrere Stakeholder für die Wiederverwendung in Unternehmen, Cloud und Mobilgeräten. Ein ruhbasiertes Protokoll, ODATA baut auf Http, Atompub, und JSON Verwendung URIS Ressourcen für Datenfeeds und Zugriff auf die Ressourcen für Daten. Es ermöglicht Informationen, die aus einer Vielzahl von Quellen zugegriffen werden können, darunter (aber nicht beschränkt auf) relationale Datenbanken, Dateisysteme, Content -Management -Systeme und herkömmliche Websites. ODATA bietet eine Möglichkeit, Datensilos aufzubrechen und den gemeinsam genutzten Datenwert zu erhöhen, indem ein Ökosystem erstellt wird, in dem Datenkonsumenten mit Datenproduzenten auf eine Weise interoperieren können, die weitaus leistungsfähiger ist als derzeit möglich, sodass mehr Anwendungen ein breiteres Verständnis ermöglichen können Datensatz. Jeder Hersteller und Verbraucher von Daten, die an diesem Ökosystem beteiligt sind, erhöht seinen Gesamtwert. "[8]
TC -Teilnehmer umfassen CA -Technologien, Citrix -Systeme, IBM, Microsoft, Fortschrittssoftware, roter Hut, SAP SE und SDL.
Die Architektur
Odata ist ein Protokoll für die Schöpfung und den Verbrauch von erholsamen APIs. Als gemeinsame Praktiken von Ruhe baut Odata auf HTTP, Atompub und JSON auf, die URIs verwenden, um Datenfeed -Ressourcen zu adressieren und zugreifen zu können.
Ressourcenidentifikation
Odata verwendet URIs, um Ressourcen zu identifizieren. Für jeden Odata -Dienst, dessen Service Root als abgekürzt wird http: // host/service/, folgende Fest Ressourcen können gefunden werden:
Das Service -Dokument
Das Service -Dokument listet Entitätssätze, Funktionen und Singletons auf, die abgerufen werden können. Clients können das Service-Dokument navigieren, um das Modell in hypermedia-gesteuerter Weise zu navigieren.
Das Service -Dokument ist bei verfügbar http: // host/service/.
Das Metadatendokument
Das Metadatendokument beschreibt die Typen, Sätze, Funktionen und Aktionen, die der ODATA -Dienst verstanden hat. Kunden können das Metadatendokument verwenden, um zu verstehen, wie sie abfragen und mit Unternehmen im Service interagieren.
Das Metadatendokument ist bei verfügbar http: // host/service/$ metadata.
Dynamische Ressourcen
Die URIs für die dynamischen Ressourcen können aus dem berechnet werden Hypermedia Informationen im Dokument für Service -Dokument und Metadaten.
Ressourcenbetrieb
ODATA verwendet die HTTP -Verben, um die Vorgänge auf den Ressourcen anzugeben.
- GET: Holen Sie sich die Ressource (eine Sammlung von Unternehmen, ein einzelnes Unternehmen, ein strukturelles Eigentum, eine Navigationseigenschaft, einen Stream usw.).
- Beitrag: Erstellen Sie eine neue Ressource.
- Put: Aktualisieren Sie eine vorhandene Ressource, indem Sie sie durch eine vollständige Instanz ersetzen.
- Patch: Aktualisieren Sie eine vorhandene Ressource, indem Sie einen Teil ihrer Eigenschaften durch eine Teilinstanz ersetzen.
- Löschen: Entfernen Sie die Ressource.
Abfrage
Von einem ODATA -Endpunkt angeforderte URLs können Abfragoptionen enthalten. Das ODATA -Protokoll gibt verschiedene Endpunkte der Systemabfrageoptionen an, diese können verwendet werden, um Daten zu filtern, zu bestellen, zu kartieren oder zu paginieren.
Abfrageoptionen können nach a an eine URL angehängt werden ?
Charakter und werden durch getrennt durch &
Figuren; Jede Option besteht aus a $
-Signieren =
Zeichen zum Beispiel: Odata/Produkte? $ Top = 2 & $ orderby = Name
. Eine Reihe von logischen Operatoren und Funktionen werden zum Beispiel für die Verwendung beim Filtern von Daten definiert: Odata/Produkte?
fordert Produkte mit einem Preis von kleiner als 10 und einem Namen an, der mit dem Buchstaben 'M' beginnt.
Ressourcenrepräsentation
ODATA verwendet verschiedene Formate zur Darstellung von Daten und dem Datenmodell. In Odata Protocol Version 4.0 ist JSON -Format der Standard für die Darstellung von Daten mit dem Atom Das Format befindet sich noch in der Spezifikationsphase des Ausschusses. Zur Darstellung des Datenmodells wird die gemeinsame Schema -Definitionssprache (CSDL) verwendet, die eine XML -Darstellung des von ODATA -Diensten aufgedeckten Entitätsdatenmodells definiert.
Eine Beispiel -Nutzlast von Odata JSON -Daten
Eine Sammlung von Produkten:
{ "@odata.context": "http://services.odata.org/v4/odata/odata.svc/$metadata#products", "Wert": [ { "ICH WÜRDE": 0, "Name": "Fleisch", "Beschreibung": "Rotes Fleisch", "Veröffentlichungsdatum": "1992-01-01T00: 00: 00Z", "Abgebrochen": Null, "Bewertung": 14, "Preis": 2.5 }, { "ICH WÜRDE": 1, "Name": "Milch", "Beschreibung": "Fettarme Milch", "Veröffentlichungsdatum": "1995-10-01T00: 00: 00Z", "Abgebrochen": Null, "Bewertung": 3, "Preis": 3.5 }, ... ] }
Eine Beispiel -Nutzlast von Odata -Atomdaten
Eine Sammlung von Produkten:
XML: Basis ="http://services.odata.org/v4/odata/odata.svc/" M: Kontext ="http://services.odata.org/v4/odata/odata.svc/$metadata#products" xmlns ="http://www.w3.org/2005/atom" xmlns: d ="http://docs.oasi-open.org/odata/ns/data" xmlns: m ="http://docs.oasi-open.org/odata/ns/metadata" xmlns: Geors ="http://www.geors.org/georss" xmlns: gml ="http://www.opengis.net/gml"> http://services.odata.org/v4/odata/odata.svc/products Typ ="Text">Produkte 2015-05-19T03: 38: 50Z rel ="selbst" Titel ="Produkte" href ="Produkte"/> http://services.odata.org/v4/odata/odata.svc/products(0) Begriff ="#Odatademo.product" Schema ="http://docs.oasi-open.org/odata/ns/scheme"/> rel ="bearbeiten" Titel ="Produkt" href ="Produkte (0)"/> rel ="http://docs.oasis-open.org/odata/ns/relatedlinks/categories" Typ ="Anwendung/XML" Titel ="Kategorien" href ="Produkte (0)/Kategorien/$ ref"/> rel ="http://docs.oasi-open.org/odata/ns/related/categories" Typ ="Anwendung/Atom+xml; type = feed" Titel ="Kategorien" href ="Produkte (0)/Kategorien"/> rel ="http://docs.oasis-open.org/odata/ns/relatedlinks/supplier" Typ ="Anwendung/XML" Titel ="Anbieter" href ="Produkte (0)/Lieferant/$ ref"/> rel ="http://docs.oasis-open.org/odata/ns/related/supplier" Typ ="Anwendung/Atom+xml; Typ = Eintrag" Titel ="Anbieter" href ="Produkte (0)/Lieferant"/> rel ="http://docs.oasis-open.org/odata/ns/relatedlinks/productDetail" Typ ="Anwendung/XML" Titel ="Produktdetail" href ="Produkte (0)/ProductDetail/$ ref"/> rel ="http://docs.oasis-open.org/odata/ns/related/productdetail" Typ ="Anwendung/Atom+xml; Typ = Eintrag" Titel ="Produktdetail" href ="Produkte (0)/ProductDetail"/> 2015-05-19T03: 38: 50Z Typ ="Anwendung/XML"> M: Typ ="Int32">0 Brot Vollkornbrot M: Typ ="DateTimeOffset">1992-01-01T00: 00: 00Z m: null ="Stimmt"/> M: Typ ="Int16">4 M: Typ ="Doppelt">2.5 http://services.odata.org/v4/odata/odata.svc/products(1) Begriff ="#Odatademo.product" Schema ="http://docs.oasi-open.org/odata/ns/scheme"/> rel ="bearbeiten" Titel ="Produkt" href ="Produkte (1)"/> rel ="http://docs.oasis-open.org/odata/ns/relatedlinks/categories" Typ ="Anwendung/XML" Titel ="Kategorien" href ="Produkte (1)/Kategorien/$ ref"/> rel ="http://docs.oasi-open.org/odata/ns/related/categories" Typ ="Anwendung/Atom+xml; type = feed" Titel ="Kategorien" href ="Produkte (1)/Kategorien"/> rel ="http://docs.oasis-open.org/odata/ns/relatedlinks/supplier" Typ ="Anwendung/XML" Titel ="Anbieter" href ="Produkte (1)/Lieferant/$ ref"/> rel ="http://docs.oasis-open.org/odata/ns/related/supplier" Typ ="Anwendung/Atom+xml; Typ = Eintrag" Titel ="Anbieter" href ="Produkte (1)/Lieferant"/> rel ="http://docs.oasis-open.org/odata/ns/relatedlinks/productDetail" Typ ="Anwendung/XML" Titel ="Produktdetail" href ="Produkte (1)/ProductDetail/$ ref"/> rel ="http://docs.oasis-open.org/odata/ns/related/productdetail" Typ ="Anwendung/Atom+xml; Typ = Eintrag" Titel ="Produktdetail" href ="Produkte (1)/Produktdetail"/> 2015-05-19T03: 38: 50Z Typ ="Anwendung/XML"> M: Typ ="Int32">1 Milch Fettarme Milch M: Typ ="DateTimeOffset">1995-10-01T00: 00: 00Z m: null ="Stimmt"/> M: Typ ="Int16">3 M: Typ ="Doppelt">3.5 ...
Ein Beispiel -Odata -Metadaten -Dokument
Version ="4.0" xmlns: edmx ="http://docs.oasi-open.org/odata/ns/edmx"> Namespace ="Odatademo" xmlns ="http://docs.oasi-open.org/odata/ns/edm"> Name ="Produkt"> Name ="ICH WÜRDE"/> Name ="ICH WÜRDE" Typ ="Edm.int32" Nullable ="FALSCH"/> Name ="Name" Typ ="Edm.String"/> Name ="Beschreibung" Typ ="Edm.String"/> Name ="Veröffentlichungsdatum" Typ ="Edm.datetimeoffset" Nullable ="FALSCH"/> Name ="Abgebrochen" Typ ="Edm.datetimeoffset"/> Name ="Bewertung" Typ ="Edm.int16" Nullable ="FALSCH"/> Name ="Preis" Typ ="Edm.double" Nullable ="FALSCH"/> Name ="Adresse"> Name ="Straße" Typ ="Edm.String"/> Name ="Stadt" Typ ="Edm.String"/> Name ="Bundesland" Typ ="Edm.String"/> Name ="Postleitzahl" Typ ="Edm.String"/> Name ="Land" Typ ="Edm.String"/> Name ="DemoService"> Name ="Produkte" EntityType ="Odatademo.Product"> </EntitySet>
Ökosystem
Das Ökosystem von Odata besteht aus den Client/Server -Bibliotheken, die das Protokoll implementieren, und Anwendungen, die auf dem Protokoll basieren.
Bibliotheken
Es stehen eine Reihe von ODATA -Bibliotheken zur Verfügung, um auf Odata -APIs zuzugreifen/zu produzieren:
.NETZ
Java
JavaScript
- Client: Apache Olingo[14] (gekennzeichnet durch OASE[15])
- Client: Data.js[16]
- Kunde: Jaydata[17] Für eine höhere Abstraktionsebene (linq-ähnliche Syntax, Unterstützung für ODATA-Geo-Funktionen, IndexedDB, Websql, Integration für Devextreme, Kendo UI, Angular.js, Knockout.js und Sencha).
- Klient: OpenUi5 Bibliothek gewartet von SAFT
- Client (node.js): jaydata für node[18]
- Kunde: Brise[19]
- Kunde: Odata4 und Invantive Bridge online[20]
- Server: Node-Odata[21]
Php
Python
Rubin
- Client: Ruby_odata Library[26]
- Kunde: Kostenlose Odata v4.0 Bibliothek für Ruby[27]
- Server: Safrano[28]
Andere
Andere implementierte Sprachen umfassen:[29]
- AJAX: ASP.NET AJAX -Bibliothek[30] für den Ankommen von Odata.
- C ++: odatacpp_client[31] ist eine nur clientseitige Implementierung des ODATA-Protokolls.
- Windward Studios[32] Unterstützt Odata in ihren Lösungen für Berichts- und Dokumentengenerierung.
- Berichterstattungsinstrument Liste & Etikett hat einen spezialisierten Datenanbieter für Odata.
- Blackberry (C ++): Odata-Bb10[33] ODATA -Bibliothek (Open Data Protocol) für offene Daten Blackberry 10 (BB10) Cascades -Apps
Anwendungen
Anwendungen umfassen:[34]
- Fortschritt Datadirect Hybrid Data Pipeline[35] kann jede Wolke freilegen, Große Daten oder relationale Datenquellen als Odata -Endpunkte
- Socrata enthüllt eine Odata API.
- Microsoft Azure enthüllt eine Odata API.
- SAP NetWeaver Tor[36] Bietet Odata Zugang zu SAP Business Suite und SAP Business Warehouse.
- IBM WebSphere Extreme Skala Der REST -Datendienst kann von jedem HTTP -Client mit ODATA zugegriffen werden.[37]
- Microsoft SharePoint 2010 und up kann seine Daten als ODATA -Endpunkt freilegen
- Büro 365 Entellt Odata v4.0 apis.[38]
- Zwangsversteigerung Connect verbraucht Odata -APIs.[39]
- Skyvia Connect[40] Entellt Cloud- und Datenbankdaten über Odata frei
- Tableau kann eine Verbindung zu Odata -APIs herstellen.[41]
- Tibco Spotfire kann eine Verbindung zu Odata -APIs herstellen.[42]
- Mulesoft[43] Hilft bei der Integration in Odata -APIs.[44]
- Erfolgsfaktoren[45] verwendet Odata -APIs
- Ceridian HCMs Dayforce[46] verwendet Odata[47]
- Roter Fisch verwendet Odata[48]
Werkzeug
- Nucleon Database Master [49]
Siehe auch
- Gdata - konkurrierendes Protokoll von Google
- Ressourcenbeschreibung Framework (RDF) - Ein ähnliches Konzept von W3c
- Graphql
Verweise
- ^ "Herzlich willkommen!". MSDN Blogs. Odata -Team.
- ^ "Oasis Open Data Protocol (ODATA) Technischer Ausschuss". Abgerufen 2013-08-05.
- ^ "Oasis genehmigt ODATA 4.0 -Standards für ein offenes, programmierbares Web". oasis-open.org. 17. März 2014.
- ^ "Oasis hat Odata V4 und Odata JSON Format V4 an ISO/IEC JTC 1 zur Genehmigung als internationalen Standard eingereicht". Frau Open Tech. Archiviert von das Original Am 2015-05-20. Abgerufen 2015-05-18.
- ^ "Odata veröffentlicht als ISO -Standard · odata - der beste Weg, um sich auszuruhen". www.odata.org. Abgerufen 2021-05-11.
- ^ "ISO/IEC 20802-1: 2016". ISO. Abgerufen 2021-05-11.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ "ISO/IEC 20802-2: 2016". ISO. Abgerufen 2021-05-11.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ "Oasis Open Data Protocol (ODATA) TC | Oasis". www.oasis-open.org. Abgerufen 24. September, 2019.
- ^ Microsoft ODATA .NET -Bibliotheken
- ^ Simple.odata.client
- ^ Apache Olingo
- ^ Jello-Framework
- ^ Odata-Client
- ^ Apache Olingo
- ^ "Bibliotheken · odata - der beste Weg, sich auszuruhen". www.odata.org. Abgerufen 2019-02-19.
- ^ "Data.js". Codeplex -Archiv.
- ^ Jaydata
- ^ Jaydata für Knoten
- ^ Brise
- ^ Odata4 und Invantive Bridge online
- ^ Node-Odata
- ^ Odataphp
- ^ Podata
- ^ Pyodata
- ^ Pyslet
- ^ Ruby_odata Library
- ^ Kostenlose Odata v4.0 Bibliothek für Ruby
- ^ Safrano
- ^ "Bibliotheken". odata.org.
- ^ ASP.NET AJAX -Bibliothek
- ^ odatacpp_client
- ^ Windward Studios
- ^ Odata-BB10
- ^ "Ökosystem". odata.org.
- ^ Fortschritt Datadirect Hybrid Data Pipeline
- ^ "SAP NetWeaver Gateway". Abgerufen 2012-11-22.
- ^ IBM Developerworks Extreme Skala REST Data Service (Odata)
- ^ "Willkommen bei Office 365 APIs". docs.microsoft.com. Abgerufen 24. September, 2019.
- ^ "Richten Sie Salesforce Connect ein, um mit dem ODATA 2.0- oder 4.0 -Adapter auf externe Daten zuzugreifen.".
- ^ Skyvia Connect
- ^ "Odata - Tableau". help.tableau.com. Abgerufen 24. September, 2019.
- ^ "Odata und Spotfire". Der Tibco -Blog. Abgerufen 2016-03-30.
- ^ Mulesoft
- ^ "Anypoint Exchange". www.mulesoft.com. Abgerufen 24. September, 2019.
- ^ Erfolgsfaktoren
- ^ Ceridian HCMs Dayforce
- ^ "HR Reporting Software - Dayforce | Ceridian". www.ceridian.com. Abgerufen 24. September, 2019.
- ^ "Was Sie über Redfish -API wissen müssen". Exxakt. 2017-12-01. Abgerufen 2019-08-31.
- ^ "Nucleon Database Master". Abgerufen 16. November 2017.
Externe Links
- Offizielle Website
- Entwickeln Sie Service-orientierte Anwendungen mit WCF
- Odata -Grundlagenpräsentation
Odata Oasis Standards
- Odata Version 4.0 Teil 1: Protokoll
- ODATA Version 4.0 Teil 2: URL -Konventionen
- ODATA Version 4.0 Teil 3: Gemeinsames Schema -Definitionssprache (CSDL)
- ABNF -Komponenten - ODATA ABNF -Konstruktionsregeln Version 4.0 und Odata ABNF -Testfälle
- Wortschatzkomponenten - Odata -Kernvokabular und Odata messen das Wortschatz
- XML -Schemas - Odata EDMX XML -Schema und Odata EDM XML -Schema
- Odata JSON Format Version 4.0