Open Data Protocol Explained

In computing, Open Data Protocol (OData) is an open protocol that allows the creation and consumption of queryable and interoperable Web service APIs in a standard way. Microsoft initiated OData in 2007.[1] Versions 1.0, 2.0, and 3.0 are released under the Microsoft Open Specification Promise. Version 4.0 was standardized at OASIS,[2] with a release in March 2014.[3] In April 2015 OASIS submitted OData v4 and OData JSON Format v4 to ISO/IEC JTC 1 for approval as an international standard.[4] In December 2016, ISO/IEC published OData 4.0 Core as ISO/IEC 20802-1:2016[5] [6] and the OData JSON Format as ISO/IEC 20802-2:2016.[7]

The protocol enables the creation and consumption of HTTP-based Web APIs, which allow Web clients to publish and edit resources, identified using URLs and defined in a data model, using simple HTTP messages. OData shares some similarities with JDBC and with ODBC; like ODBC, OData is not limited to relational databases.

Standardization

After initial development by Microsoft, OData became a standardized protocol of the OASIS OData Technical Committee (TC).

OASIS OData Technical Committee

"The OASIS OData TC works to simplify the querying and sharing of data across disparate applications and multiple stakeholders for re-use in the enterprise, Cloud, and mobile devices. A REST-based protocol, OData builds on HTTP, AtomPub, and JSON using URIs to address and access data feed resources. It enables information to be accessed from a variety of sources including (but not limited to) relational databases, file systems, content management systems, and traditional Web sites. OData provides a way to break down data silos and increase the shared value of data by creating an ecosystem in which data consumers can interoperate with data producers in a way that is far more powerful than currently possible, enabling more applications to make sense of a broader set of data. Every producer and consumer of data that participates in this ecosystem increases its overall value."[8]

TC participants include CA Technologies, Citrix Systems, IBM, Microsoft, Progress Software, Red Hat, SAP SE and SDL.

Architecture

OData is a protocol for the creation and consumption of Web APIs. OData thus builds on HTTP, AtomPub, and JSON using URIs to address and access data feed resources.

Resource identification

OData uses URIs to identify resources. For every OData service whose service root is abbreviated as http://host/service/, the following fixed resources can be found:

The service document

The service document lists entity sets, functions, and singletons that can be retrieved. Clients can use the service document to navigate the model in a hypermedia-driven fashion.

The service document is available at http://host/service/

The metadata document

The metadata document describes the types, sets, functions and actions understood by the OData service. Clients can use the metadata document to understand how to query and interact with entities in the service.

The metadata document is available at http://host/service/$metadata.

Dynamic resources

The URIs for the dynamic resources may be computed from the hypermedia information in the service document and metadata document.

Resource operation

OData uses the HTTP verbs to indicate the operations on the resources.

Querying

URLs requested from an OData endpoint may include query options. The OData protocol specifies various 'system query options' endpoints should accept, these can be used to filter, order, map or paginate data.

Query options can be appended to a URL after a ? character and are separated by & characters; each option consists of a $-sign prefixed name and its value, separated by a = sign, for example: OData/Products?$top=2&$orderby=Name. A number of logical operators and functions are defined for use when filtering data, for example: OData/Products?$filter=Price lt 10.00 and startswith(Name,'M') requests products with a price smaller than 10 and a name starting with the letter 'M'.

Resource representation

OData uses different formats for representing data and the data model. In OData protocol version 4.0, JSON format is the standard for representing data, with the Atom format still being in committee specification stage. For representing the data model, the Common Schema Definition Language (CSDL) is used, which defines an XML representation of the entity data model exposed by OData services.

A sample OData JSON data payload

A collection of products:

A sample OData Atom data payload

A collection of products: http://services.odata.org/v4/odata/odata.svc/Products Products 2015-05-19T03:38:50Z http://services.odata.org/V4/OData/OData.svc/Products(0) <updated>2015-05-19T03:38:50Z</updated> <author> <name/> </author> <content type="application/xml"> <m:properties> <d:ID m:type="Int32">0</d:ID> <d:Name>Bread</d:Name> <d:Description>Whole grain bread</d:Description> <d:ReleaseDate m:type="DateTimeOffset">1992-01-01T00:00:00Z</d:ReleaseDate> <d:DiscontinuedDate m:null="true"/> <d:Rating m:type="Int16">4</d:Rating> <d:Price m:type="Double">2.5</d:Price> </m:properties> </content> </entry> <entry> <id>http://services.odata.org/V4/OData/OData.svc/Products(1)</id> <category term="#ODataDemo.Product" scheme="http://docs.oasis-open.org/odata/ns/scheme"/> <link rel="edit" title="Product" href="Products(1)"/> <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Categories" type="application/xml" title="Categories" href="Products(1)/Categories/$ref"/> <link rel="http://docs.oasis-open.org/odata/ns/related/Categories" type="application/atom+xml;type=feed" title="Categories" href="Products(1)/Categories"/> <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Supplier" type="application/xml" title="Supplier" href="Products(1)/Supplier/$ref"/> <link rel="http://docs.oasis-open.org/odata/ns/related/Supplier" type="application/atom+xml;type=entry" title="Supplier" href="Products(1)/Supplier"/> <link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/ProductDetail" type="application/xml" title="ProductDetail" href="Products(1)/ProductDetail/$ref"/> <link rel="http://docs.oasis-open.org/odata/ns/related/ProductDetail" type="application/atom+xml;type=entry" title="ProductDetail" href="Products(1)/ProductDetail"/> <title/> <updated>2015-05-19T03:38:50Z</updated> <author> <name/> </author> <content type="application/xml"> <m:properties> <d:ID m:type="Int32">1</d:ID> <d:Name>Milk</d:Name> <d:Description>Low fat milk</d:Description> <d:ReleaseDate m:type="DateTimeOffset">1995-10-01T00:00:00Z</d:ReleaseDate> <d:DiscontinuedDate m:null="true"/> <d:Rating m:type="Int16">3</d:Rating> <d:Price m:type="Double">3.5</d:Price> </m:properties> </content> </entry> ...</feed></syntaxhighlight></p> <h4>A sample OData metadata document </h4> <p><syntaxhighlight lang="xml" line><edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx"> <edmx:DataServices> <Schema Namespace="ODataDemo" xmlns="http://docs.oasis-open.org/odata/ns/edm"> <EntityType Name="Product"> <Key> <PropertyRef Name="ID"/> </Key> <Property Name="ID" Type="Edm.Int32" Nullable="false"/> <Property Name="Name" Type="Edm.String"/> <Property Name="Description" Type="Edm.String"/> <Property Name="ReleaseDate" Type="Edm.DateTimeOffset" Nullable="false"/> <Property Name="DiscontinuedDate" Type="Edm.DateTimeOffset"/> <Property Name="Rating" Type="Edm.Int16" Nullable="false"/> <Property Name="Price" Type="Edm.Double" Nullable="false"/> </EntityType></p> <p><ComplexType Name="Address"> <Property Name="Street" Type="Edm.String"/> <Property Name="City" Type="Edm.String"/> <Property Name="State" Type="Edm.String"/> <Property Name="ZipCode" Type="Edm.String"/> <Property Name="Country" Type="Edm.String"/> </ComplexType> <EntityContainer Name="DemoService"> <EntitySet Name="Products" EntityType="ODataDemo.Product"></EntitySet> </EntityContainer> </Schema> </edmx:DataServices></edmx:Edmx></syntaxhighlight></p> <h2>Ecosystem</h2> <p>The ecosystem of OData consists of the client/server libraries that implement the protocol, and applications that are based on the protocol.</p> <h3>Libraries</h3> <p>There are a number of OData libraries available to access/produce OData APIs:</p> <h4>.NET </h4> <ul><li>Server and client: Microsoft's OData .NET libraries<sup><a href="#Ref-9">[9]</a></sup></li> <li>Client: Simple.OData.Client<sup><a href="#Ref-10">[10]</a></sup></li> </ul> <h4>Java </h4> <ul><li>Server and client: Apache Olingo<sup><a href="#Ref-11">[11]</a></sup></li> <li>Server side: Jello-Framework<sup><a href="#Ref-12">[12]</a></sup></li> <li>Client: odata-client<sup><a href="#Ref-13">[13]</a></sup></li> </ul> <h4>JavaScript </h4> <ul><li>Client: Apache Olingo<sup><a href="#Ref-14">[14]</a></sup> (featured by <a href="../OASIS_(organization)/" title="OASIS was founded under the name "SGML Open" in 1993.">OASIS</a><sup><a href="#Ref-15">[15]</a></sup>)</li> <li>Client: data.js<sup><a href="#Ref-16">[16]</a></sup></li> <li>Client: JayData<sup><a href="#Ref-17">[17]</a></sup> for higher level of abstraction (LINQ-like syntax, support for OData geo features, IndexedDB, WebSQL, integration for DevExtreme, Kendo UI, Angular.js, Knockout.js and Sencha).</li> <li>Client: <a href="../OpenUI5/" title="OpenUI5 is a JavaScript application framework designed to build cross-platform, responsive, enterprise-ready applications.">OpenUI5</a> library maintained by <a href="../SAP/" title="SAP is a German multinational software company based in Walldorf, Baden-Württemberg.">SAP</a></li> <li>Client (Node.js): JayData for node<sup><a href="#Ref-18">[18]</a></sup></li> <li>Client: Breeze<sup><a href="#Ref-19">[19]</a></sup></li> <li>Client: OData4 and Invantive Bridge Online<sup><a href="#Ref-20">[20]</a></sup></li> <li>Client: odata-fluent-query:<sup><a href="#Ref-21">[21]</a></sup> a JavaScript OData query language parser</li> <li>Server: node-odata<sup><a href="#Ref-22">[22]</a></sup></li> </ul> <h4>PHP </h4> <ul><li>Client: odataphp<sup><a href="#Ref-23">[23]</a></sup></li> <li>Server: POData<sup><a href="#Ref-24">[24]</a></sup></li> </ul> <h4>Python </h4> <ul><li>Client: PyOData<sup><a href="#Ref-25">[25]</a></sup></li> <li>Server and client: Pyslet<sup><a href="#Ref-26">[26]</a></sup></li> </ul> <h4>Ruby </h4> <ul><li>Client: ruby_odata library<sup><a href="#Ref-27">[27]</a></sup></li> <li>Client: Free OData V4.0 Library for Ruby<sup><a href="#Ref-28">[28]</a></sup></li> <li>Server: Safrano<sup><a href="#Ref-29">[29]</a></sup></li> </ul> <h4>Others </h4> <p>Other languages implemented include:<sup><a href="#Ref-30">[30]</a></sup></p> <ul><li>AJAX: ASP.NET Ajax Library<sup><a href="#Ref-31">[31]</a></sup> for getting to OData.</li> <li>C++: odatacpp_client<sup><a href="#Ref-32">[32]</a></sup> is a client-side-only implementation of the OData protocol.</li> <li>Windward Studios<sup><a href="#Ref-33">[33]</a></sup> supports OData in their Reporting & Document Generation Solutions.</li> <li>Reporting tool List & Label has a specialized data provider for OData.</li> <li>Blackberry (C++): OData-BB10<sup><a href="#Ref-34">[34]</a></sup> Open Data Protocol (OData) library for <a href="../BlackBerry_10/" title="BlackBerry 10 was a proprietary mobile operating system for the BlackBerry line of smartphones, both developed by BlackBerry ...">BlackBerry 10</a> (BB10) Cascades apps</li> </ul> <h3>Applications </h3> <p>Applications include:<sup><a href="#Ref-35">[35]</a></sup></p> <ul><li>Progress DataDirect Hybrid Data Pipeline<sup><a href="#Ref-36">[36]</a></sup> can expose any cloud, <a href="../big_data/" title="Big data is that it is a large body of information that cannot be comprehended when used in small amounts only.">big data</a> or relational data sources as OData end points</li> <li><a href="../Socrata/" title="Socrata was a business-to-government software company that sold an open data platform whose goal was to help civic ...">Socrata</a> exposes an OData <a href="../API/" title="API is often made up of different parts which act as tools or services that are available to the programmer.">API</a>.</li> <li><a href="../Microsoft_Azure/" title="Microsoft Azure is the cloud computing platform developed by Microsoft.">Microsoft Azure</a> exposes an OData <a href="../API/" title="API is often made up of different parts which act as tools or services that are available to the programmer.">API</a>.</li> <li><a href="https://docs.oracle.com/en/cloud/paas/analytics-cloud/acsds/supported-data-sources.html" rel="nofollow">Oracle Analytics Cloud</a> can connect to an OData API</li> <li><a href="../SAP_NetWeaver/" title="SAP NetWeaver is a software stack for many of SAP SE 's applications.">SAP NetWeaver</a> Gateway<sup><a href="#Ref-37">[37]</a></sup> provides OData access to SAP Business Suite and SAP Business Warehouse.</li> <li><a href="../IBM_WebSphere_eXtreme_Scale/" title="IBM is the largest industrial research organization in the world, with 19 research facilities across a dozen countries, ...">IBM WebSphere eXtreme Scale</a> REST data service can be accessed by any HTTP client using OData.<sup><a href="#Ref-38">[38]</a></sup></li> <li><a href="../Microsoft_SharePoint/" title="SharePoint is a collection of enterprise content management and knowledge management tools developed by Microsoft.">Microsoft SharePoint</a> 2010 and up can expose its data as OData endpoint</li> <li><a href="../Office_365/" title="Microsoft 365 is a product family of productivity software, collaboration and cloud-based services owned by Microsoft.">Office 365</a> exposes OData V4.0 APIs.<sup><a href="#Ref-39">[39]</a></sup></li> <li><a href="../Salesforce.com/" title="Salesforce is an American cloud -based software company headquartered in San Francisco, California.">Salesforce</a> Connect consumes OData APIs.<sup><a href="#Ref-40">[40]</a></sup></li> <li>Skyvia Connect<sup><a href="#Ref-41">[41]</a></sup> exposes cloud and database data via OData</li> <li><a href="../Tableau_Software/" title="Tableau Software is an American interactive data visualization software company focused on business intelligence.">Tableau</a> can connect to OData APIs.<sup><a href="#Ref-42">[42]</a></sup></li> <li><a href="../Spotfire/" title="Spotfire is an artificial intelligence -based analytics platform.">TIBCO Spotfire</a> can connect to OData APIs.<sup><a href="#Ref-43">[43]</a></sup></li> <li>Mulesoft<sup><a href="#Ref-44">[44]</a></sup> helps integrate with OData APIs.<sup><a href="#Ref-45">[45]</a></sup></li> <li>SuccessFactors<sup><a href="#Ref-46">[46]</a></sup> uses OData APIs</li> <li>Ceridian HCM's Dayforce<sup><a href="#Ref-47">[47]</a></sup> uses Odata<sup><a href="#Ref-48">[48]</a></sup></li> <li><a href="../Redfish_(specification)/" title="The Redfish is a suite of specifications that deliver an industry standard protocol providing a RESTful interface for the ...">Redfish</a> uses Odata<sup><a href="#Ref-49">[49]</a></sup></li> </ul> <h2>Tools</h2> <ul><li>Nucleon Database Master <sup><a href="#Ref-50">[50]</a></sup></li> </ul> <h2>See also</h2> <ul><li><a href="../GData/">GData</a> – competing protocol from Google</li> <li><a href="../Resource_Description_Framework/" title="The Resource Description Framework is a World Wide Web Consortium standard originally designed as a data model for metadata.">Resource Description Framework</a> (RDF) – a similar concept by <a href="../World_Wide_Web_Consortium/" title="The World Wide Web Consortium is the main international standards organization for the World Wide Web.">W3C</a></li> <li><a href="../GraphQL/" title="GraphQL is a data query and manipulation language for API s, that allows a client to specify what data it needs.">GraphQL</a> - a popular protocol originally from Facebook/Meta</li> </ul> <h2>External links</h2> <ul><li><a href="https://www.odata.org/" rel="nofollow">Official website</a></li> <li><a href="https://docs.microsoft.com/en-us/dotnet/framework/wcf/" rel="nofollow">Develop Service-Oriented Applications with WCF</a></li> <li><a href="https://www.hanselman.com/blog/odata-basics-at-the-azgroups-day-of-net-with-scottgu" rel="nofollow">OData Basics Presentation</a></li> </ul> <h3>OData OASIS Standards</h3> <ul><li><a href="http://docs.oasis-open.org/odata/odata/v4.0/os/part1-protocol/odata-v4.0-os-part1-protocol.html" rel="nofollow">OData Version 4.0 Part 1: Protocol</a></li> <li><a href="http://docs.oasis-open.org/odata/odata/v4.0/os/part2-url-conventions/odata-v4.0-os-part2-url-conventions.html" rel="nofollow">OData Version 4.0 Part 2: URL Conventions</a></li> <li><a href="http://docs.oasis-open.org/odata/odata/v4.0/os/part3-csdl/odata-v4.0-os-part3-csdl.html" rel="nofollow">OData Version 4.0 Part 3: Common Schema Definition Language (CSDL)</a></li> <li><a href="http://docs.oasis-open.org/odata/odata/v4.0/os/abnf/" rel="nofollow">ABNF components - OData ABNF Construction Rules Version 4.0 and OData ABNF Test Cases</a></li> <li><a href="http://docs.oasis-open.org/odata/odata/v4.0/os/models/MetadataService.edmx" rel="nofollow">Vocabulary components - OData Core Vocabulary and OData Measures Vocabulary</a></li> <li><a href="http://docs.oasis-open.org/odata/odata/v4.0/os/schemas/" rel="nofollow">XML Schemas - OData EDMX XML Schema and OData EDM XML Schema</a></li> <li><a href="http://docs.oasis-open.org/odata/odata-json-format/v4.0/os/odata-json-format-v4.0-os.html" rel="nofollow">OData JSON Format Version 4.0</a></li> </ul> <h3>Committee Specifications</h3> <ul><li><a href="http://docs.oasis-open.org/odata/odata-atom-format/v4.0/cs02/odata-atom-format-v4.0-cs02.html" rel="nofollow">OData Atom Format Version 4.0</a></li> <li><a href="http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs01/odata-data-aggregation-ext-v4.0-cs01.html" rel="nofollow">OData Extension for Data Aggregation Version 4.0</a></li> </ul> <h3>Committee Notes</h3> <ul><li><a href="http://docs.oasis-open.org/odata/new-in-odata/v4.0/cn01/new-in-odata-v4.0-cn01.html" rel="nofollow">What's New in OData Version 4.0</a></li> </ul> <h2>Notes and References</h2> <ol><li><a name="Ref-1"></a>Web site: Flasko . Mike . 18 July 2007 . <a href="http://blogs.msdn.com/b/odatateam/archive/2007/07/18/welcome.aspx" rel="nofollow"> Welcome! </a>. dead . https://web.archive.org/web/20140505051809/http://blogs.msdn.com/b/odatateam/archive/2007/07/18/welcome.aspx . May 5, 2014 . MSDN Blogs . OData Team.</li> <li><a name="Ref-2"></a>Web site: <a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=odata" rel="nofollow"> OASIS Open Data Protocol (OData) Technical Committee </a>. 2013-08-05.</li> <li><a name="Ref-3"></a>Web site: <a href="https://www.oasis-open.org/news/pr/oasis-approves-odata-4-0-standards-for-an-open-programmable-web" rel="nofollow">OASIS Approves OData 4.0 Standards for an Open, Programmable Web</a>. oasis-open.org. 17 March 2014 .</li> <li><a name="Ref-4"></a>Web site: <a href="https://msopentech.com/blog/2015/04/21/oasis-has-submitted-odata-v4-and-odata-json-format-v4-to-isoiec-jtc-1-for-approval-as-an-international-standard/" rel="nofollow">OASIS has Submitted OData v4 and OData JSON Format v4 to ISO/IEC JTC 1 for approval as an International Standard</a>. MS Open Tech. 2015-05-18. https://web.archive.org/web/20150520091929/https://msopentech.com/blog/2015/04/21/oasis-has-submitted-odata-v4-and-odata-json-format-v4-to-isoiec-jtc-1-for-approval-as-an-international-standard/. 2015-05-20. dead.</li> <li><a name="Ref-5"></a>Web site: <a href="https://www.odata.org/blog/OData-Published-as-an-ISO-Standard/" rel="nofollow">OData Published as an ISO Standard · OData - the Best Way to REST</a>. 2021-05-11. www.odata.org.</li> <li><a name="Ref-6"></a>Web site: <a href="https://www.iso.org/cms/render/live/en/sites/isoorg/contents/data/standard/06/92/69208.html" rel="nofollow">ISO/IEC 20802-1:2016</a>. 2021-05-11. ISO. en.</li> <li><a name="Ref-7"></a>Web site: <a href="https://www.iso.org/cms/render/live/en/sites/isoorg/contents/data/standard/06/92/69209.html" rel="nofollow">ISO/IEC 20802-2:2016</a>. 2021-05-11. ISO. en.</li> <li><a name="Ref-8"></a>Web site: <a href="https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=odata" rel="nofollow">OASIS Open Data Protocol (OData) TC OASIS</a>. www.oasis-open.org. September 24, 2019.</li> <li><a name="Ref-9"></a><a href="https://odata.github.io/" rel="nofollow">https://odata.github.io/</a> Microsoft's OData .NET libraries</li> <li><a name="Ref-10"></a><a href="https://github.com/object/Simple.OData.Client" rel="nofollow">https://github.com/object/Simple.OData.Client</a> Simple.OData.Client</li> <li><a name="Ref-11"></a><a href="http://olingo.apache.org/" rel="nofollow">http://olingo.apache.org/</a> Apache Olingo</li> <li><a name="Ref-12"></a><a href="http://jello-framework.com/guide/rest.html" rel="nofollow">http://jello-framework.com/guide/rest.html</a> Jello-Framework</li> <li><a name="Ref-13"></a><a href="https://github.com/davidmoten/odata-client" rel="nofollow">https://github.com/davidmoten/odata-client</a> odata-client</li> <li><a name="Ref-14"></a><a href="http://olingo.apache.org/" rel="nofollow">http://olingo.apache.org/</a> Apache Olingo</li> <li><a name="Ref-15"></a>Web site: <a href="https://www.odata.org/libraries/" rel="nofollow">Libraries · OData - the Best Way to REST</a>. www.odata.org. 2019-02-19.</li> <li><a name="Ref-16"></a>Web site: <a href="https://archive.codeplex.com/?p=datajs" rel="nofollow">data.js</a>. CodePlex Archive.</li> <li><a name="Ref-17"></a><a href="http://jaydata.org/" rel="nofollow">http://jaydata.org/</a> JayData</li> <li><a name="Ref-18"></a><a href="https://npmjs.org/package/jaydata" rel="nofollow">https://npmjs.org/package/jaydata</a> JayData for node</li> <li><a name="Ref-19"></a><a href="http://www.getbreezenow.com/" rel="nofollow">http://www.getbreezenow.com/</a> Breeze</li> <li><a name="Ref-20"></a><a href="https://access-odata.com" rel="nofollow">https://access-odata.com</a> OData4 and Invantive Bridge Online</li> <li><a name="Ref-21"></a><a href="https://github.com/rosostolato/odata-fluent-query" rel="nofollow">https://github.com/rosostolato/odata-fluent-query</a> odata-fluent-query</li> <li><a name="Ref-22"></a><a href="https://github.com/TossShinHwa/node-odata" rel="nofollow">https://github.com/TossShinHwa/node-odata</a> node-odata</li> <li><a name="Ref-23"></a><a href="http://odataphp.codeplex.com/" rel="nofollow">http://odataphp.codeplex.com/</a> odataphp</li> <li><a name="Ref-24"></a><a href="https://github.com/Algo-Web/POData" rel="nofollow">https://github.com/Algo-Web/POData</a> POData</li> <li><a name="Ref-25"></a><a href="https://github.com/SAP/python-pyodata" rel="nofollow">https://github.com/SAP/python-pyodata</a> PyOData</li> <li><a name="Ref-26"></a><a href="https://pypi.python.org/pypi/pyslet" rel="nofollow">https://pypi.python.org/pypi/pyslet</a> Pyslet</li> <li><a name="Ref-27"></a><a href="http://rdoc.info/github/visoft/ruby_odata" rel="nofollow">http://rdoc.info/github/visoft/ruby_odata</a> ruby_odata library</li> <li><a name="Ref-28"></a><a href="https://github.com/wrstudios/frodata" rel="nofollow">https://github.com/wrstudios/frodata</a> Free OData V4.0 Library for Ruby</li> <li><a name="Ref-29"></a><a href="https://safrano.aithscel.eu" rel="nofollow">https://safrano.aithscel.eu</a> Safrano</li> <li><a name="Ref-30"></a>Web site: <a href="http://www.odata.org/libraries/" rel="nofollow">Libraries</a>. odata.org.</li> <li><a name="Ref-31"></a><a href="http://ajax.codeplex.com/" rel="nofollow">http://ajax.codeplex.com/</a> ASP.NET Ajax Library</li> <li><a name="Ref-32"></a><a href="https://github.com/OData/odatacpp-client" rel="nofollow">https://github.com/OData/odatacpp-client</a> odatacpp_client</li> <li><a name="Ref-33"></a><a href="https://www.windwardstudios.com/datasource/odata" rel="nofollow">https://www.windwardstudios.com/datasource/odata</a> Windward Studios</li> <li><a name="Ref-34"></a><a href="https://github.com/blackberry/OData-BB10" rel="nofollow">https://github.com/blackberry/OData-BB10</a> OData-BB10</li> <li><a name="Ref-35"></a>Web site: <a href="http://www.odata.org/ecosystem/" rel="nofollow">Ecosystem</a>. odata.org.</li> <li><a name="Ref-36"></a><a href="https://www.progress.com/cloud-and-hybrid-data-integration" rel="nofollow">https://www.progress.com/cloud-and-hybrid-data-integration</a> Progress DataDirect Hybrid Data Pipeline</li> <li><a name="Ref-37"></a>Web site: <a href="http://scn.sap.com/community/netweaver-gateway" rel="nofollow"> SAP NetWeaver Gateway </a>. 2012-11-22.</li> <li><a name="Ref-38"></a><a href="http://www.ibm.com/developerworks/websphere/downloads/xs_rest_service.html" rel="nofollow">http://www.ibm.com/developerworks/websphere/downloads/xs_rest_service.html</a> IBM developerWorks eXtreme Scale REST data service</li> <li><a name="Ref-39"></a>Web site: <a href="https://docs.microsoft.com/en-us/previous-versions/office/office-365-api/" rel="nofollow">Welcome to Office 365 APIs</a>. docs.microsoft.com. 28 August 2018 . September 24, 2019.</li> <li><a name="Ref-40"></a>Web site: <a href="https://help.salesforce.com/s/articleView?id=sf.platform_connect_setup.htm&type=5" rel="nofollow">Set Up Salesforce Connect to Access External Data with the OData 2.0 or 4.0 Adapter</a>.</li> <li><a name="Ref-41"></a><a href="http://skyvia.com/connect/" rel="nofollow">http://skyvia.com/connect/</a> Skyvia Connect</li> <li><a name="Ref-42"></a>Web site: <a href="https://help.tableau.com/current/pro/desktop/en-us/examples_odata.htm" rel="nofollow">OData - Tableau</a>. help.tableau.com. September 24, 2019.</li> <li><a name="Ref-43"></a>Web site: <a href="https://www.tibco.com/blog/2015/05/28/odata-and-spotfire/" rel="nofollow">OData and Spotfire</a>. The TIBCO Blog. en-us. 2016-03-30.</li> <li><a name="Ref-44"></a><a href="https://www.mulesoft.com/" rel="nofollow">https://www.mulesoft.com/</a> Mulesoft</li> <li><a name="Ref-45"></a>Web site: <a href="https://www.mulesoft.com/exchange/" rel="nofollow">Anypoint Exchange</a>. www.mulesoft.com. September 24, 2019.</li> <li><a name="Ref-46"></a><a href="https://www.successfactors.com/" rel="nofollow">https://www.successfactors.com/</a> SuccessFactors</li> <li><a name="Ref-47"></a><a href="https://www.ceridian.com/" rel="nofollow">https://www.ceridian.com/</a> Ceridian HCM's Dayforce</li> <li><a name="Ref-48"></a>Web site: <a href="https://www.ceridian.com/products/dayforce/hr/reporting" rel="nofollow">HR Reporting Software - Dayforce Ceridian</a>. www.ceridian.com. September 24, 2019.</li> <li><a name="Ref-49"></a>Web site: <a href="https://www.exxactcorp.com/blog/HPC/what-you-need-to-know-about-redfish-api" rel="nofollow">What You Need to Know About Redfish API</a>. 2017-12-01. Exxact. en-US. 2019-08-31.</li> <li><a name="Ref-50"></a>Web site: <a href="http://mongodb-tools.com/tool/nucleon-database-master/" rel="nofollow">Nucleon Database Master</a>. 16 November 2017.</li> </ol><div class="Footer"> <div class="robots-noindex"><p>This article is licensed under the <a href="http://www.gnu.org/copyleft/fdl.html" rel="nofollow">GNU Free Documentation License</a>. It uses material from the Wikipedia article "<a href="http://en.wikipedia.org/wiki/Open_Data_Protocol" rel="nofollow">Open Data Protocol</a>".</p></div> <p>Except where otherwise indicated, Everything.Explained.Today is © Copyright 2009-2024, A B Cryer, All Rights Reserved. <a href="http://explained.today/cookie_policy.htm">Cookie policy</a>.</p> </div> </div> </body> </html>