We reported at the beginning of March that 37signals launched the new version of Basecamp, its much acclaimed project management tool. A Basecamp API for integration partners was still missing at that point. Now the company follows up with “the all new API for the all new Basecamp”, as David Heinemeier Hansson of Ruby on Rails fame puts it in his announcement.
37signals is known for being quite particular about how they do and don’t do things. This also applies to their Basecamp API, for which they have selected JSON as the only available data serialization format. An interesting change of opinion, as XML was used for the API of the previous version of their product, now known as Basecamp Classic API. This is yet another indicator of the trend towards the JSON format that we haven seen at ProgrammableWeb in recent years.
Implementation details of an API are not that frequently released. Differently so in this case, as 37signals as such close ties to the open source development community. In a note on Twitter, Heinemeier Hansson mentions that the API has been developed using jbuilder, a member of the Ruby on Rails ecosystem, which offers "a simple Domain-specific_language (DSL) for declaring JSON structures".
The API documentation is hosted at github.com, something that we see more and more frequently these days. 37signals actively encourages developers to help correcting and extending the API documentation, a smart move given how many eyes will be looking at this documentation in the coming days and weeks.