The request is simple
- Implement the OData API for Stack Overflow sites
- It's a standard API.
- OData allows the Stack Overflow database to be queried and navigated for questions, users, answers by using any attribute of those entities.
This is completed, as
is an oData endpoint and we officially support it!
I emailed Jeff Atwood last night a one line email. "You should make a Stack Overflow API using OData." Then I realized that, as Linus says, Talk is Cheap, Show me the Code. So I created an initial prototype of a Stack Overflow API using OData on an airplane. I allocated the whole 12 hour flight. Unfortunately it took 30 minutes, so I watched movies the rest of the time.
Stack Overflow has always been incredibly open and generous with their data. I propose that an OData endpint would give us much more flexible access to their data than a custom XML and/or JSON API that they'll need be constantly rev'ing.
With a proprietary API, folks will rush to create Stack Overflow clients in many languages, but that work is already done with OData including libraries for iPhone, PHP and Java. There's a growing list of OData SDKs that could all be used to talk to a service like this. I could load it into Excel using PowerPivot if I like as well.
Also, this service could totally be extended beyond this simple GET example. You can do complete CRUD with OData, and it's not tied to .NET in anyway. TweetDeck for Stack Overflow perhaps?
I propose we encourage Stack Overflow to put more than the 30 minutes that I have put into it and make a proper OData service for their data, rather than a custom API. I volunteer to help. If not, we can do it ourselves with their dump data (perhaps weekly if they can step it up?) and a cloud instance.
While OData is still relatively new, many other organizations are opening up their data using this format. I expect that some very interesting mashups can result from having SO data available to OData tools and clients.
"Standard API?" It's yet another random Microsoft data access invention from precisely 15 minutes ago. Why not YQL?
OData Away sirs:
On the one hand, it's based on AtomPub, and AtomPub is wicked cool.
On the other hand, it's junked up with a whole pile of data types that I don't particularly care to worry about... I mean, really - I'm sending back an integer and I gotta worry about whether the server is gonna choke if I mark it as Int32 instead of Int16? That's the sort of madness that made me hate SOAP!
I hate to sound like a MS basher, but this smells like yet another over-engineered spec in search of a purpose. And the rotten encoding of the documentation itself doesn't help ("â€œrawâ€ format"?!)
The Stack Exchange Data Explorer (SEDE) includes OData endpoints as well as the ability to name and save queries so that other people can view the results. Please note that the data explorer uses the monthly data dumps and is hosted offsite in Azure to prevent performance issues with the production database. This means the only way to access real-time data is to use the Stack Apps API.
Let the "change" happen to move to OData. It really seems sweet (from @shanselman's blog post), and I can't wait to get my hands on it.
Hopefully a StackOverflowDeck or a StackOverFlowy built on Stack Overflow OData, will come along pretty soon.