Github Can Be the POST and PUT Layer For Federal Government APIs
25 Sep 2013
I'm playing with different approaches to rapidly design, develop, deploy and manage APIs using Github. While about 90% of what I'm building runs on Github, there is still about 10% that runs on Amazon EC2.
There are just some aspects of a proper API interface that I can't do on Github. My recent prototypes use swagger and allow for much of the API interactions to occur via Github. I a working to carve off any elements I can from the architecture, including using JSON files stored at Github as the database backend for the API.
If you look at my recent Dev Hub prototype, you can browse the API interface, thanks to Swagger, and when you make API calls to the endpoints via Amazon EC2, the REST interface is just acting as a search, filter and REST facade for the JSON files that are actually stored on Github--eliminating the need for a database backend.
This approach allows me to develop light-weight REST facades for JSON data stores as well as for other APIs. I'm playing around with different ways that I can use this thought process to push government APIs to the next level, and building on my earlier thoughts today on the need for writable APIs in federal government.
I'm evolving earlier designs I have in my archives of BeyondGET or OtherVerbs, an Augmented API Platform, where I'm looking to provide an augmented layer that makes existing APIs writable. Marrying these legacy thoughts with my current approaches using Github plus EC2 APIs, I strongly feel that Github has huge potential for being a POST, PUT and DELETE layer for federal government APIs.
Using a REST facade on EC2 I can easily proxy existing government APIs, then using a swagger definition I could seamlessly weave in a POST, PUT and DELETE layer that would write to JSON files hosted at Github using the Github API.
I'm in early thoughts on this work, and will start playing with examples of how this can work with real, live government APIs. I think it has legs though. I'm not very confident that we can get the government to allow users to write and update data via APIs without demonstrating the value of this. Which means we need to make it happen externally of government, show the value and then get buy in from key decision makers.