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.

Ben eeuk 01

In my talk I presented a scenario in which I asked the members of the audience to imagine their first day in a new job as an EE pro”. Their hypothetical background was in front-end/design/EE with proficient skills in HTML, CSS, JavaScript and some basic PHP, and they were hired to create internal systems for the company.

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.

Presenting

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.

Open API architecture

I showed Open API in action by giving a live demo of three web apps that I had developed specifically for the presentation. Unsurprisingly each of the apps fulfilled each of the tasks that I had presented earlier and the Open API was able to address all of the challenges that ExpressionEngine natively could not. The apps were all Javascript apps that used AJAX to communicate with Open API and were able to retrieve, update, create and delete content in the CMS.

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.

Open API is available here and you can view my presentation slides here.

Conference name tag