$30 off During Our Annual Pro Sale. View Details »

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
Tweet

More Decks by Ben Croker

Other Decks in Technology

Transcript

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

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. Your First Day As
    The EE Pro

    View Slide

  10. Task 1
    News Dept.

    View Slide

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


    View Slide

  12. View Slide

  13. safecracker
    form

    View Slide

  14. View Slide

  15. ?

    View Slide

  16. Challenges
    Create new categories
    Update existing categories

    View Slide

  17. Task 2
    Sales Dept.

    View Slide

  18. Build a task list
    system with
    commenting


    View Slide

  19. View Slide

  20. entry
    category

    View Slide

  21. status

    View Slide

  22. status title

    View Slide

  23. status title
    delete

    View Slide

  24. status title
    delete
    create

    View Slide

  25. Challenges
    Update statuses and titles inline
    Delete entries
    Create new entries on-the-fly

    View Slide

  26. Task 3
    Mobile App Dept.

    View Slide

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


    View Slide

  28. Mobile App
    CMS
    Return articles in
    JSON format
    Request new articles
    since last check

    View Slide

  29. Challenges
    Request published entries
    based on specific time
    Speed and performance
    Output entries in JSON format

    View Slide

  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

    View Slide

  31. ExpressionEngine
    API Libraries
    EE2 Native Libraries
    Ellis Lab

    View Slide

  32. ExpressionEngine API’s
    Used mainly for Creating, Updating
    and Deleting
    Limited Retrieval
    Inconsistent Syntax
    Available in Back-end only

    View Slide

  33. Channel Data
    Library
    Justin Kimbrell
    Objective HTML

    View Slide

  34. Channel Data Library
    Retrieval of Content
    (Channels, Entries, Categories, ...)
    Abstracted Methods
    Consistent Syntax
    Available in Back-end only

    View Slide

  35. EE Data API
    Chris Imrie
    Moresoda

    View Slide

  36. EE Data API
    CodeIgniter App
    Very Basic Retrieval of
    Channels and Entries
    Available on Front-end

    View Slide

  37. Entry API
    Rein de Vries
    Reinos.nl

    View Slide

  38. Entry API
    CRUD Capability on Entries
    and Categories
    REST, XML-RPC and SOAP
    Commercial Add-on
    Available on Front-end

    View Slide

  39. Conclusion
    ExpressionEngine
    is missing a way of retrieving and
    modifying content from outside the
    Control Panel

    View Slide

  40. Introducing
    Open API

    View Slide

  41. Open API
    CRUD Capability
    Free and Open Source
    Proper API Docs
    Available on Front-end

    View Slide

  42. Open API Capabilities
    Member Authentication
    C(reate) R(ead) U(pdate) D(elete):
    Channels, Channel Entries,
    Categories, Category Groups,
    Members,
    ...

    View Slide

  43. Open API Architecture
    HTTP GET & POST Requests
    JSON Responses
    Authenticated Sessions
    Language Independent
    (PHP, JavaScript, CURL, AJAX,...)

    View Slide

  44. Open API
    Open API Lib
    Channel Data
    Library
    Read Create/Update/Delete
    Front-End Request JSON Response
    EE API Lib

    View Slide

  45. Open API Docs
    h p://docs.eeopenapi.apiary.io

    View Slide

  46. Demos

    View Slide

  47. ExpressionEngine
    as a Platform
    Requires a paradigm shi
    in the level of freedom and control
    we have over our content

    View Slide

  48. Open API
    h ps://github.com/putyourlightson/open-api
    h p://docs.eeopenapi.apiary.io
    Ben Croker
    @ben_pylo

    View Slide