Open Data requires open database access
One of the recent discussions I had has brought to me the fact that open data without access to the database often is insufficient.
Sometimes, deciders going into the Open Data thing just release their data on a searchable website or through a web service in a way they think to be useful. Most of the times, it is. However, sometimes, this seems insufficient to the developers wanting to make complex reports or data mining.
So, if you’re about to release an Open Data web service, leave a remark on your website allowing people who really need it to send you a motivated mail to get granted a special access to your database server, or receive a copy of your data.
This is simple but sometimes, it helps.
PS: Also, supporting the OData standards may help. The OData standards already allow developers to make complex filtering that may sufficient to most of them.
Why use the Open Data Protocol?
Currently a lot of common ways of designing web API's have emerged on the web. Many of them already apply REST or CQRS principles and use JSON or XML to expose data.
However these API surfaces are hardly uniform. What does it mean to do a POST to a particular resource? If I found a resource how can I find related resources? How do I apply complex filters over the data to only retrieve the resources I am interested in?
All these questions have to be answered in developer documentation about the API and if you want to use different Data API's you need to learn how to interact with each API separately.
OData solves this problem by providing a uniform way to expose, structure, query and manipulate data using REST practices and JSON or ATOM syntax to describe the payload. OData also provides a uniform way to represent metadata about the data, allowing computers to know more about the type system, relationships and structure of the data.
Choosing to expose your data as OData you tap into a large ecosystem that can target your dataset without any modification. You also tap into an ecosystem of developers since a lot of developers already know how to target an OData API and they won't have to learn anything new to get going with your dataset.