odata

OData FAQ

Q: What is the Open Data Protocol (OData)?

A: The Open Data Protocol (OData) is an open protocol for sharing data. It 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.

Q: What is REST?

A: Representational State Transfer (REST) is a software architectural style for distributed hypermedia systems like the World Wide Web. The term was originally defined in a doctoral dissertation (Architectural Styles and the Design of Network- based Software Architectures) about the web written by Roy Fielding. OData follows many of the principles of REST.

Q. Will the Open Data Protocol (OData) be standardized?

A: The Open Data Protocol specification is currently available under the Microsoft Open Specification Promise (OSP), allowing third parties, including open source projects, to build Data Services for any runtime as well as clients to consume such services.

Q: How do I create a Service that uses the Open Data Protocol (OData)?

A: The simplest OData service can be implemented as simply as a static file that follows the OData ATOM or JSON payload conventions. For scenarios beyond static content, frameworks are available to help in creating OData services. See the OData developer page for additional information.

Q: I hear a key benefit of a REST-based approach is a uniform interface. What exactly does that mean and why is it a benefit?

A: In the context of OData, a uniform interface means that how you address items in an OData feed (i.e. how to construct URIs), how you interact with a service (using HTTP verbs), etc. is the same across any OData Service, regardless of the data it exposes. This uniform interface enables code reuse against your data services such that one can create reusable client libraries and UI widgets for all such services. For example, the Data Service framework is doing this by shipping .NET, Silverlight, AJAX, etc. libraries which can talk to any Data Service.

Q: Do I need a specific client library to consume an OData feed?

A: No, all interaction with an OData feed are done using URIs to address resources and standard HTTP verbs (GET, POST, PUT, DELETE, etc) to act on those resources. Therefore, any platform with a reasonably complete HTTP stack is enough to make communicating with a data service simple. That said, a number of client libraries are available which allow for development at a higher level of abstraction.

Q: Is there a client library to consume an OData feed available for my platform?

A: OData client libraries are available for a range of platforms including .NET and Silverlight through WCF Data Services, as well as AJAX, PHP, Java and the IPhone. More information on how to download client libraries is available in the OData SDK.

Q: Isn't this a Microsoft thing? Why do you call it the Open Data Protocol?

A: The name Open Data Protocol was chosen to make it clear that the protocol is intended to align with the Open Data movement and that we are fully committed to ensuring that the protocol remains as open as possible. We would love to hear your feedback if you have thoughts on how the protocol could be made to be more open.

Q: How do I get involved in the OData Discussion to provide my feedback?

A:  We want to make the OData community as open as possible, so making this a two-way conversation it critical. Right now we are considering a number of approaches, and of course your suggestions are welcome. At the same time we are exchanging ideas with the interested community and looking to engage with IETF and W3C to explore how to get broad adoption of our extentions/conventions.