I had the pleasure of revealing Open API, my latest creation for ExpressionEngine, in my presentation at EEUK 2013. Open API is a front-end, http-based API for ExpressionEngine that provides authentication and CRUD (create/read/update/delete) functionality to content and data in the CMS.
I then proceeded to present them with the tasks that they would be expected to complete based on various requirements and expectations of how the end result should look and work. The three tasks were all very reasonable requests, nothing out of the ordinary or that could be seen as overly complex, however each of the tasks presented challenges relating specifically to getting content in and out of ExpressionEngine that would either make them impossible to do or that would require workarounds.
Next I looked at some of the options that are out there: the native ExpressionEngine API Libraries, Channel Data, EE Data API, Entry API, and explained why each of these was either unsuitable or not ideal for the challenges mentioned above. I came to the conclusion that:
“ExpressionEngine is missing a way of retrieving and modifying content from outside the Control Panel”
I then introduced Open API as a solution and explained its features:
- Member authentication and authenticated sessions
- CRUD capability on channels, entries, categories, category groups, members, etc.
- Free and open source
- Proper API documentation
And presented its architecture in a simple visualisation (revealing the teaser I previously posted). Open API uses the Channel Data library for read requests and the ExpressionEngine API Libraries for create/update/delete requests, which has the benefit of ensuring that any third-party extensions that hook into the API will still work. Any requests that are not supported by the ExpressionEngine API Libraries will be processed by the Open API Library which can be extended to add further features and capabilities.
My closing slide hits home with the following statement:
“ExpressionEngine as a Platform – requires a paradigm shift in the level of freedom and control we have over our content”
I believe that content freedom is essential for ExpressionEngine to really become a Platform and that releasing Open API to the community was a big step in the right direction.