OData (Open Data Protocol) is an open protocol for sharing the data. It is OASIS (Organization for the Advancement of Structured Information Standards) standard which defines best practice for building and consuming REST API.
The main goal of the Open Data protocol is to any application can able to access from any other application. Nowadays many applications like Web browsers, apps on mobile devices, BI tools are required to access common data sources. The data source of every application has its own approach and style so it is very difficult to create the data source that can be accessed by all applications. Solution to this problem is to define common approaches and that all application owners agree to follow this approach for accessing the data.
Currently, OData is widely used for exposing data. The applications such as Facebook and eBay are exposing their data via OData. OData is preferred to use custom enterprise applications for expose data. To do this OData libraries are available for different application development platform such as .net and java. Cloud storage like Windows Azure and relational data in SQL Azure has built-in support for OData. Same as Content management software like SharePoint have built-in support for OData.
OData supports following two different output formats, JSON and Atom.
When to Use?
The first question that is raised is: Why do we use OData instead of SOAP-based XML format? OData is the new standard for communication and it is now accepted by most of the clients. OData is now supported by the .NET framework and Excel 2010 for Pivot Table. We can also run LINQ query on OData service from client code. Many BI tools support OData data source. It is also able to expose data from the relational database, file systems, services, etc.
So, OData provides a common way for clients to access the data source. It also allows us to write service once and many clients can use this data differently.
Thanks for dropping by!!! Feel free to comment on this post or you can also drop me an email at email@example.com