Auction giant eBay is giving its developers another way to access listings. In addition to its current eBay API, it has added support for Microsoft's "OData," an Open Data protocol for accessing and querying data provided by an API. Using familiar technologies, OData provides a consistent structure, with the promise of APIs that are more flexible and easier to use.
The eBay developer post explains OData:
[OData] is a Web protocol for querying and updating data that provides a way to unlock your data and free it from silos that exist in applications today. OData offers a standardized way for programmable data to be made available across the web.
eBay's OData implementation, built out from the service's existing APIs, was recently premiered at Microsoft's Professional Developers Conference along with a number of other high-profile implementations.
Although it might not be readily apparent from the project homepage, the OData protocol itself is a Microsoft initiative. The specification is available for public use under the company's Open Specification Promise, a pledge not to assert legal rights over selected patented technologies.
OData provides a standardized approach for accessing and updating data through REST APIs. It makes use of existing, familiar technologies like AtomPub and JSON but attempts to provide a consistent structure for their use across implementations. OData's origins are explained on Microsoft's developer site:
OData emerged organically based on the experiences implementing AtomPub clients and servers in a variety of products over the past several years. OData is being used to expose and access information from a variety of sources, including but not limited to relational databases, file systems, content management systems, and traditional web sites.
This makes OData sound a lot less like an "open" approach and more like Microsoft's own preferred approach. Indeed, eBay's OData page for developers puts it quite clearly:
The eBay OData API is an implementation of the OData protocol built upon the eBay's existing APIs by Microsoft with help of eBay, leveraging the existing Findings and Trading APIs. (Emphasis added)
It is not quite the case that eBay is adopting OData (the APIs already in place are used for the OData implementation and are not being replaced by it) the way a Web Service might adopt a standard like OAuth, for example, as its sole Authentication mechanism. Rather, Microsoft has built an example implementation of its own approach to data-oriented web APIs as a layer on top of eBay's existing access scheme.
This raises some interesting questions about the future of API standardization. Regarding the sort-of-but-not-exactly open status of OData, a commenter named Chris Davis on the OData site's inaugural blog post wrote:
In the FAQ, it is mentioned that the "protocol is intended to align with the Open Data movement". However, much of the open data movement is already using the W3C standards of RDF, OWL, and SPARQL, which have been designed explicitly for the purpose of linking open data. If as hinted at in the FAQ that this is not just a Microsoft thing, then why do these standards not seem to be mentioned anywhere on this site?
One can imaging an OData advocate responding by pointing to implementations like eBay's and the others announced at the PDC as evidence that OData has a better adoption track record than more traditionally "open" standards like the ones mentioned by Mr. Davis. Of course, at least some of those implementations, like eBay's, have been put in place on top of existing solutions by the company that created OData and has an interest in its promotion.
As the role of developer APIs continues to expand, will major industry players like Microsoft and others start more aggressively pushing their own favored approaches? Even if they do, is there anything wrong with making resources available in as many ways as possible?