Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EEUK 2013: ExpressionEngine's Missing API

EEUK 2013: ExpressionEngine's Missing API

My talk at EEUK 2013 in which I introduce Open API.

Ben Croker

May 17, 2013

More Decks by Ben Croker

Other Decks in Technology


  1. Ben Croker Lead Developer, Venveo Add-On Developer, PutYourLightsOn @ben_pylo expressionengine’s

    missing api
  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. Your First Day As The EE Pro

  10. Task 1 News Dept.

  11. Build a simple, mobile-friendly, publishing system for news articles “

  12. None
  13. safecracker form

  14. None
  15. ?

  16. Challenges Create new categories Update existing categories

  17. Task 2 Sales Dept.

  18. Build a task list system with commenting “ “

  19. None
  20. entry category

  21. status

  22. status title

  23. status title delete

  24. status title delete create

  25. Challenges Update statuses and titles inline Delete entries Create new

    entries on-the-fly
  26. Task 3 Mobile App Dept.

  27. Build an endpoint that can be queried for recently published

    news articles “ “
  28. Mobile App CMS Return articles in JSON format Request new

    articles since last check
  29. Challenges Request published entries based on specific time Speed and

    performance Output entries in JSON format
  30. Realisation ExpressionEngine’s CRUD Functionality is locked in the Control Panel

    The only way OUT is with Templates The only way IN is with Safecracker
  31. ExpressionEngine API Libraries EE2 Native Libraries Ellis Lab

  32. ExpressionEngine API’s Used mainly for Creating, Updating and Deleting Limited

    Retrieval Inconsistent Syntax Available in Back-end only
  33. Channel Data Library Justin Kimbrell Objective HTML

  34. Channel Data Library Retrieval of Content (Channels, Entries, Categories, ...)

    Abstracted Methods Consistent Syntax Available in Back-end only
  35. EE Data API Chris Imrie Moresoda

  36. EE Data API CodeIgniter App Very Basic Retrieval of Channels

    and Entries Available on Front-end
  37. Entry API Rein de Vries Reinos.nl

  38. Entry API CRUD Capability on Entries and Categories REST, XML-RPC

    and SOAP Commercial Add-on Available on Front-end
  39. Conclusion ExpressionEngine is missing a way of retrieving and modifying

    content from outside the Control Panel
  40. Introducing Open API

  41. Open API CRUD Capability Free and Open Source Proper API

    Docs Available on Front-end
  42. Open API Capabilities Member Authentication C(reate) R(ead) U(pdate) D(elete): Channels,

    Channel Entries, Categories, Category Groups, Members, ...
  43. Open API Architecture HTTP GET & POST Requests JSON Responses

    Authenticated Sessions Language Independent (PHP, JavaScript, CURL, AJAX,...)
  44. Open API Open API Lib Channel Data Library Read Create/Update/Delete

    Front-End Request JSON Response EE API Lib
  45. Open API Docs h p://docs.eeopenapi.apiary.io

  46. Demos

  47. ExpressionEngine as a Platform Requires a paradigm shi in the

    level of freedom and control we have over our content
  48. Open API h ps://github.com/putyourlightson/open-api h p://docs.eeopenapi.apiary.io Ben Croker @ben_pylo