Otevřený datový protokol - Open Data Protocol
v výpočetní, Otevřený datový protokol (OData) je otevřený protokol který umožňuje vytváření a spotřebu dotazovatelných a interoperabilních ZBYTEK API jednoduchým a standardním způsobem. Microsoft zahájila OData v roce 2007.[1] Verze 1.0, 2.0 a 3.0 jsou vydávány pod Microsoft Open Specification Promise. Verze 4.0 byla standardizována na OÁZA,[2] s vydáním v březnu 2014.[3] V dubnu 2015 OASIS odeslal OData v4 a OData JSON Format v4 ISO / IEC JTC 1 ke schválení jako mezinárodní standard.[4]
Protokol umožňuje vytváření a spotřebu ZBYTEK API, která umožňují webovým klientům publikovat a upravovat zdroje, identifikovaná pomocí URL a definovaná v a datový model pomocí jednoduchých zpráv HTTP. OData sdílí některé podobnosti s JDBC a s ODBC; stejně jako ODBC, OData není omezen na relační databáze.
Standardizace
Po počátečním vývoji společností Microsoft se OData stal standardizovaným protokolem technického výboru OASIS OData (TC).
Technická komise OASIS OData
„OASIS OData TC pracuje na zjednodušení dotazování a sdílení dat napříč různými aplikacemi a více zúčastněnými stranami pro opakované použití v podnikových, cloudových a mobilních zařízeních. Protokol založený na REST, OData staví na HTTP, AtomPub, a JSON použitím URI adresovat a přistupovat ke zdrojům datových zdrojů. Umožňuje přístup k informacím z různých zdrojů, mimo jiné včetně relačních databází, souborových systémů, systémů pro správu obsahu a tradičních webových stránek. OData poskytuje způsob, jak rozdělit datová sila a zvýšit sdílenou hodnotu dat vytvořením ekosystému, ve kterém mohou spotřebitelé dat spolupracovat s producenty dat způsobem, který je mnohem silnější, než je v současné době možné, což umožňuje více aplikacím dávat smysl širšímu soubor dat. Každý producent a spotřebitel dat, který se účastní tohoto ekosystému, zvyšuje jeho celkovou hodnotu. “[5]
Mezi účastníky TC patří CA Technologies, Systémy Citrix, IBM, Microsoft, Software Progress, červená čepice, SAP SE a SDL.
Architektura
OData je protokol pro vytváření a spotřebu rozhraní RESTful API. Jako běžná praxe REST tedy OData staví na HTTP, AtomPub a JSON pomocí URI k adresování a přístupu k prostředkům zdroje dat.
Identifikace zdroje
OData používá identifikátory URI k identifikaci zdrojů. Pro každou službu OData, jejíž kořen služby je zkrácen jako http: // hostitel / služba /, následující pevný zdroje najdete:
Servisní dokument
Dokument služby obsahuje seznam entit, funkcí a singletonů, které lze načíst. Klienti mohou pomocí dokumentu služby navigovat v modelu hypermediálním způsobem.
Servisní dokument je k dispozici na adrese http: // hostitel / služba /.
Dokument metadat
Dokument metadat popisuje typy, sady, funkce a akce, kterým služba OData rozumí. Klienti mohou pomocí dokumentu metadat pochopit, jak provádět dotazy a pracovat s entitami ve službě.
Dokument metadat je k dispozici na adrese http: // hostitel / služba / $ metadata.
Dynamické zdroje
URI pro dynamické prostředky lze vypočítat z hypermediální informace v servisním dokumentu a dokumentu metadat.
Provoz zdroje
OData používá k označení operací s prostředky slovesa HTTP.
- ZÍSKEJTE: Získejte prostředek (sbírka entit, jedna entita, strukturální vlastnost, navigační vlastnost, stream atd.).
- POST: Vytvořte nový zdroj.
- PUT: Aktualizujte existující prostředek nahrazením úplnou instancí.
- PATCH: Aktualizujte existující prostředek nahrazením části jeho vlastností částečnou instancí.
- ODSTRANIT: Odebrat prostředek.
Reprezentace zdrojů
OData používá různé formáty pro reprezentaci dat a datového modelu. V protokolu OData verze 4.0 je formát JSON standardem pro reprezentaci dat s Atom formát je stále ve fázi specifikace výboru. Pro reprezentaci datového modelu se používá jazyk CSDL (Common Schema Definition Language), který definuje reprezentaci XML datového modelu entity vystaveného službami OData.
Ukázkové užitečné zatížení dat OData JSON
Kolekce produktů:
{ „@ odata.context“: „http://services.odata.org/V4/OData/OData.svc/$metadata#Products“, "hodnota": [ { „ID“: 0, "Název": "Maso", "Popis": "Červené maso", "Datum vydání": „1992-01-01T00: 00: 00Z“, „DiscontinuedDate“: nula, „Hodnocení“: 14, "Cena": 2.5 }, { „ID“: 1, "Název": "Mléko", "Popis": "Nízkotučné mléko", "Datum vydání": „1995-10-01T00: 00: 00Z“, „DiscontinuedDate“: nula, „Hodnocení“: 3, "Cena": 3.5 }, ... ]}
Ukázkové užitečné zatížení dat OData Atom
Kolekce produktů:
1 xml: base =„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.oasis-open.org/odata/ns/data“ xmlns: m =„http://docs.oasis-open.org/odata/ns/metadata“ xmlns: georss =„http://www.georss.org/georss“ xmlns: gml =„http://www.opengis.net/gml“> 2 <id>http://services.odata.org/v4/odata/odata.svc/Products</id> 3 zadejte ="text">produkty</title> 4 <updated>2015-05-19T03: 38: 50Z</updated> 5 rel ="já" název ="Produkty" href ="Produkty"/> 6 <entry> 7 <id>http://services.odata.org/V4/OData/OData.svc/Products(0)</id> 8 termín =„# ODataDemo.Product“ schéma =„http://docs.oasis-open.org/odata/ns/scheme“/> 9 rel ="Upravit" název ="Produkt" href =„Produkty (0)“/>10 rel =„http://docs.oasis-open.org/odata/ns/relatedlinks/Categories“ zadejte =„application / xml“ název ="Kategorie" href =„Produkty (0) / Kategorie / $ ref“/>11 rel =„http://docs.oasis-open.org/odata/ns/related/Categories“ zadejte =„application / atom + xml; type = feed“ název ="Kategorie" href =„Produkty (0) / Kategorie“/>12 rel =„http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier“ zadejte =„application / xml“ název =„Dodavatel“ href =„Produkty (0) / Dodavatel / $ ref“/>13 rel =„http://docs.oasis-open.org/odata/ns/related/Supplier“ zadejte =„application / atom + xml; type = entry“ název =„Dodavatel“ href =„Produkty (0) / Dodavatel“/>14 rel =„http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail“ zadejte =„application / xml“ název =„ProductDetail“ href =„Products (0) / ProductDetail / $ ref“/>15 rel =„http://docs.oasis-open.org/odata/ns/related/ProductDetail“ zadejte =„application / atom + xml; type = entry“ název =„ProductDetail“ href =„Products (0) / ProductDetail“/>16 <title/>17 <updated>2015-05-19T03: 38: 50Z</updated>18 <author>19 <name/>20 </author>21 zadejte =„application / xml“>22 <m:properties>23 m: zadejte ="Int32">0</d:ID>24 <d:Name>Chléb</d:Name>25 <d:Description>Celozrnný chléb</d:Description>26 m: zadejte =„DateTimeOffset“>1992-01-01T00: 00: 00Z</d:ReleaseDate>27 m: null ="skutečný"/>28 m: zadejte =„Int16“>4</d:Rating>29 m: zadejte ="Dvojnásobek">2.5</d:Price>30 </m:properties>31 </content>32 </entry>33 <entry>34 <id>http://services.odata.org/V4/OData/OData.svc/Products(1)</id>35 termín =„# ODataDemo.Product“ schéma =„http://docs.oasis-open.org/odata/ns/scheme“/>36 rel ="Upravit" název ="Produkt" href =„Produkty (1)“/>37 rel =„http://docs.oasis-open.org/odata/ns/relatedlinks/Categories“ zadejte =„application / xml“ název ="Kategorie" href =„Produkty (1) / Kategorie / $ ref“/>38 rel =„http://docs.oasis-open.org/odata/ns/related/Categories“ zadejte =„application / atom + xml; type = feed“ název ="Kategorie" href =„Produkty (1) / Kategorie“/>39 rel =„http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier“ zadejte =„application / xml“ název =„Dodavatel“ href =„Produkty (1) / Dodavatel / $ ref“/>40 rel =„http://docs.oasis-open.org/odata/ns/related/Supplier“ zadejte =„application / atom + xml; type = entry“ název =„Dodavatel“ href =„Produkty (1) / Dodavatel“/>41 rel =„http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail“ zadejte =„application / xml“ název =„ProductDetail“ href =„Products (1) / ProductDetail / $ ref“/>42 rel =„http://docs.oasis-open.org/odata/ns/related/ProductDetail“ zadejte =„application / atom + xml; type = entry“ název =„ProductDetail“ href =„Products (1) / ProductDetail“/>43 <title/>44 <updated>2015-05-19T03: 38: 50Z</updated>45 <author>46 <name/>47 </author>48 zadejte =„application / xml“>49 <m:properties>50 m: zadejte ="Int32">1</d:ID>51 <d:Name>Mléko</d:Name>52 <d:Description>Nízkotučné mléko</d:Description>53 m: zadejte =„DateTimeOffset“>1995-10-01T00: 00: 00Z</d:ReleaseDate>54 m: null ="skutečný"/>55 m: zadejte =„Int16“>3</d:Rating>56 m: zadejte ="Dvojnásobek">3.5</d:Price>57 </m:properties>58 </content>59 </entry>60 ...61 </feed>
Ukázkový dokument metadat OData
1 Verze ="4.0" xmlns: edmx =„http://docs.oasis-open.org/odata/ns/edmx“> 2 <edmx:DataServices> 3 Obor názvů =„ODataDemo“ xmlns =„http://docs.oasis-open.org/odata/ns/edm“> 4 Jméno ="Produkt"> 5 <Key> 6 Jméno =„ID“/> 7 </Key> 8 Jméno =„ID“ Typ =„Edm.Int32“ Nullable ="Nepravdivé"/> 9 Jméno ="Název" Typ =„Edm.String“/>10 Jméno ="Popis" Typ =„Edm.String“/>11 Jméno ="Datum vydání" Typ =„Edm.DateTimeOffset“ Nullable ="Nepravdivé"/>12 Jméno =„DiscontinuedDate“ Typ =„Edm.DateTimeOffset“/>13 Jméno =„Hodnocení“ Typ =„Edm.Int16“ Nullable ="Nepravdivé"/>14 Jméno ="Cena" Typ =„Edm.Double“ Nullable ="Nepravdivé"/>15 </EntityType>16 17 Jméno ="Adresa">18 Jméno ="Ulice" Typ =„Edm.String“/>19 Jméno ="Město" Typ =„Edm.String“/>20 Jméno ="Stát" Typ =„Edm.String“/>21 Jméno ="PSČ" Typ =„Edm.String“/>22 Jméno ="Země" Typ =„Edm.String“/>23 </ComplexType>24 25 Jméno =„DemoService“>26 Jméno ="Produkty" EntityType =„ODataDemo.Product“>27 </EntityContainer>28 </Schema>29 </edmx:DataServices>30 </edmx:Edmx>
Ekosystém
![]() | Tato část je Použití externí odkazy nemusí dodržovat zásady nebo pokyny Wikipedie.Říjen 2015) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Ekosystém OData se skládá z knihoven klient / server, které implementují protokol, a aplikací založených na protokolu.
Knihovny
Existuje několik knihoven OData, které jsou k dispozici pro přístup / produkci API OData:
.SÍŤ
- Server a klient: Knihovny Microsoft OData .NET
- Klient: Simple.OData.Client
Jáva
- Server a klient: Apache Olingo
- Strana serveru: Jello-Framework
- Klient: odata-klient
JavaScript
- Klient: Apache Olingo (uváděný OASIS[6])
- Klient: data.js
- Klient: JayData pro vyšší úroveň abstrakce (syntaxe podobná LINQ, podpora geografických funkcí OData, IndexedDB, WebSQL, integrace pro DevExtreme, uživatelské rozhraní Kendo, Angular.js, Knockout.js a Sencha).
- Klient: OpenUI5 knihovna udržovaná společností SAP
- Klient (Node.js): JayData pro uzel
- Klient: Vánek
- Klient: OData4 a Invantive Bridge online
- Server: uzel-odata
PHP
Krajta
Rubín
- Klient: knihovna ruby_odata
- Klient: Zdarma knihovna OData V4.0 pro Ruby
- Server: Safrano
Ostatní
Mezi další implementované jazyky patří:[7]
- AJAX: Knihovna ASP.NET Ajax pro přístup k OData.
- C ++: odatacpp_client je implementace protokolu OData pouze na straně klienta.
- Windward Studios podporuje OData v jejich řešeních pro vytváření zpráv a vytváření dokumentů.
- Nástroj pro podávání zpráv Seznam a označení má specializovaného poskytovatele dat pro OData.
- Blackberry (C ++): OData-BB10 Otevřete knihovnu OData (Data Protocol) pro aplikace BlackBerry 10 (BB10) Cascades
Aplikace
Aplikace zahrnují:[8]
- Hybridní datový kanál Progress DataDirect může vystavit jakýkoli cloud, velká data nebo relační zdroje dat jako koncové body OData
- Socrata vystavuje OData API.
- Microsoft Azure vystavuje OData API.
- SAP NetWeaver Brána[9] poskytuje přístup OData k SAP Business Suite a SAP Business Warehouse.
- IBM WebSphere eXtreme Scale K datové službě REST může přistupovat jakýkoli klient HTTP pomocí oData.[10]
- Microsoft SharePoint 2010 a vyšší mohou vystavit svá data jako koncový bod OData
- Office 365 vystavuje rozhraní OData V4.0 API.[11]
- Salesforce Lightning Connect spotřebovává rozhraní OData API.[12]
- Skyvia Connect vystavuje cloudová a databázová data prostřednictvím OData
- Živý obraz lze připojit k API OData.[13]
- TIBCO Spotfire lze připojit k API OData.[14]
- Mulesoft pomáhá integrovat s OData API.[15]
- Faktory úspěchu používá API Odata
- Ceridian HCM's Dayforce používá Odata [16]
- Červená ryba používá Odata [17]
Nástroje
- Mistr databáze nukleonů [18]
Viz také
- GData - konkurenční protokol od Google
- Rámec popisu zdrojů (RDF) - podobný koncept od W3C
- GraphQL
Reference
- ^ "Vítejte!". Blogy MSDN. Tým OData.
- ^ „Technický výbor OASIS Open Data Protocol (OData)“. Citováno 2013-08-05.
- ^ „OASIS schvaluje standardy OData 4.0 pro otevřený programovatelný web“. oasis-open.org.
- ^ „OASIS předložila OData v4 a OData JSON Format v4 ISO / IEC JTC 1 ke schválení jako mezinárodní standard“. MS Open Tech. Archivovány od originál dne 2015-05-20. Citováno 2015-05-18.
- ^ "TC OASIS Open Data Protocol (OData) | OASIS". www.oasis-open.org. Citováno 24. září 2019.
- ^ „Knihovny · OData - nejlepší způsob odpočinku“. www.odata.org. Citováno 2019-02-19.
- ^ "Knihovny". odata.org.
- ^ "Ekosystém". odata.org.
- ^ „SAP NetWeaver Gateway“. Citováno 2012-11-22.
- ^ Datová služba IBM developerWorks eXtreme Scale REST (OData)
- ^ „Vítejte v Office 365 API“. docs.microsoft.com. Citováno 24. září 2019.
- ^ „Salesforce Lightning Connect & OData“.
- ^ „OData - tablo“. help.tableau.com. Citováno 24. září 2019.
- ^ „OData a Spotfire“. Blog TIBCO. Citováno 2016-03-30.
- ^ „Anypoint Exchange“. www.mulesoft.com. Citováno 24. září 2019.
- ^ „Software pro hlášení HR - Dayforce | Ceridian“. www.ceridian.com. Citováno 24. září 2019.
- ^ „Co potřebujete vědět o API Redfish“. Přesně. 2017-12-01. Citováno 2019-08-31.
- ^ „Nucleon Database Master“. Citováno 16. listopadu 2017.
externí odkazy
- OData.org (oficiální stránka)
- Otevřete datový protokol příkladem
- Prezentace základů OData
Standardy OData OASIS
- OData verze 4.0 Část 1: Protokol
- OData verze 4.0 Část 2: Konvence URL
- OData verze 4.0 část 3: Společný jazyk definice schématu (CSDL)
- Komponenty ABNF - konstrukční pravidla OData ABNF verze 4.0 a testovací případy OData ABNF
- Součásti slovníku - OData Core Vocabulary a OData Measures Vocabulary
- Schémata XML - schéma XML OData EDMX a schéma XML OData EDM
- Formát OData JSON verze 4.0