Joomla REST API


   CTO, Techjoomla
   Director, Tekdi Web Solutions
   @coolbung | @techjoomla
   www.techjoomla.com
My Joomla! connection




●   5-star personality on the Joomla Forum
●   Started using Joomla since Mambo days
●   Using Joomla since 1.0
●   Webservices working group co-ordinator
Did you check-in ?
How did it happen ?
                      You buy a ticket!




            Scan                 Extract
           QR Code              Ticket ID




          Validate               Send
          Ticket ID          Welcome Email




                       Show Message
REST What ?
●   Representational State Transfer
●   A web page is a human readable
    representation
●   A webservice is a machine readable
    representation
●   REST piggybacks on HTTP
●   Hidden workhorse to integrate with external
    applications
Human Readable – Web Page                         Machine Readable – Web Service
  https://twitter.com/search/realtime?q=jd13in   https://search.twitter.com/search.json?q=jd13in&result_type=all
REST APIs
    What is a REST API?
●   Machine readable data
●   A way to interact with data over HTTP
    POST     = Create
    GET      = Read
    PUT      = Update
    DELETE = Delete
Why do I need REST APIs ?

My JAVA app          My Joomla! website
              INSERT INTO jos_users (name, username,
              email, password, block)
              VALUES ('James Bond', 'agent@007.com',
              'agent@007.com', MD5(007), 0)

              INSERT INTO jos_user_usergroup_map
              VALUES(62, 8)
What do I do then ?

index.php?option=com_api&app=users&resource=createuser&format=raw

[POST]
name       = Ashwin Date
username   = coolbung@gmail.com
email      = coolbung@gmail.com
password   = supersecret
key        = 4358a6fc7470713c79f31b163558a2639b3036ed
Cool! What else can I do ?
Tell me more.. who else uses it ?
Who else ?
●   News apps – Look at http://infochangeindia.org/ic/
●   Reportoise – Sales Reports
●   Zoo Image browser
●   Snappcloud
Did anyone say Enterprise ?
    A fortune 500 semiconductor company, for a
    HTML5 based Desktop app.
●   Managing a repository of 100,000 micro
    products
●   Product approval workflow
Mobile LMS Using Joomla
                    Another upcoming app from Techjoomla..
         Already in use by Enterprise in Healthcare, Marketing & more !

●   Take a course on iPad
●   Go through a few lessons
●   Go meet your girlfriend
●   Come back and start the course on your
    PC
●   Fortunately the iPad spoke REST
●   Uploaded your progress to the Web LMS
●   You can resume where you left off
Content Synchronization
●   Subordinate creates articles in Joomla on
    staging server
●   Manager saves and views article on staging
    server
●   Manager then 'pushes' an approved article
    over to production
●   The staging & production site speak REST
Preventive Maintenance
New machine
 provisioning




                 API
                Agent




 Maintenance
announcements
Preventive Maintenance
●
    Electronic monitoring of machines - like a drill
●
    'Vital stats' like temperature, vibrations monitored
●
    Deviations send alerts to engineers &
    management
●
    Causes discussed on private forum and
    conclusion archived for future reference
Current Drawbacks
●   Need to write plugins
●   Small amount of code rewrite
●   Components not using Joomla MVC may need
    a lot of plugin code
What's Available
●   Jomsocial
●   Joomla Articles & Categories
●   Some of AEC
Few Ideas
●   view.json.php
●   restcontroller.php
●   format=json
Next Steps
●   Discussion on integrating Framework on
    Framework (FOF) into Joomla core
●   FOF gives access to RESTful json data
●   Build on top of it to implement all of
    POST/GET/PUT/DELETE and various HTTP
    codes
●   Re-use existing 'models' to fetch data objects
Please join in!
●   Webservices working group
    http://docs.joomla.org/Web_Services_Working_Gro
●   Code on github
    https://github.com/techjoomla/com_api-plugins
    https://github.com/techjoomla/com_api
●   Joomla! General Development Google Group
    https://groups.google.com/forum/?fromgroups=#!for
Thank You
Ashwin Date
Twitter : @coolbung / @techjoomla
Email : ashwin@techjoomla.com
http://www.slideshare.net/coolbung

Joomla REST API

  • 1.
    Joomla REST API CTO, Techjoomla Director, Tekdi Web Solutions @coolbung | @techjoomla www.techjoomla.com
  • 2.
    My Joomla! connection ● 5-star personality on the Joomla Forum ● Started using Joomla since Mambo days ● Using Joomla since 1.0 ● Webservices working group co-ordinator
  • 3.
  • 4.
    How did ithappen ? You buy a ticket! Scan Extract QR Code Ticket ID Validate Send Ticket ID Welcome Email Show Message
  • 5.
    REST What ? ● Representational State Transfer ● A web page is a human readable representation ● A webservice is a machine readable representation ● REST piggybacks on HTTP ● Hidden workhorse to integrate with external applications
  • 6.
    Human Readable –Web Page Machine Readable – Web Service https://twitter.com/search/realtime?q=jd13in https://search.twitter.com/search.json?q=jd13in&result_type=all
  • 7.
    REST APIs What is a REST API? ● Machine readable data ● A way to interact with data over HTTP POST = Create GET = Read PUT = Update DELETE = Delete
  • 8.
    Why do Ineed REST APIs ? My JAVA app My Joomla! website INSERT INTO jos_users (name, username, email, password, block) VALUES ('James Bond', 'agent@007.com', 'agent@007.com', MD5(007), 0) INSERT INTO jos_user_usergroup_map VALUES(62, 8)
  • 9.
    What do Ido then ? index.php?option=com_api&app=users&resource=createuser&format=raw [POST] name = Ashwin Date username = coolbung@gmail.com email = coolbung@gmail.com password = supersecret key = 4358a6fc7470713c79f31b163558a2639b3036ed
  • 10.
    Cool! What elsecan I do ?
  • 11.
    Tell me more..who else uses it ?
  • 12.
    Who else ? ● News apps – Look at http://infochangeindia.org/ic/ ● Reportoise – Sales Reports ● Zoo Image browser ● Snappcloud
  • 13.
    Did anyone sayEnterprise ? A fortune 500 semiconductor company, for a HTML5 based Desktop app. ● Managing a repository of 100,000 micro products ● Product approval workflow
  • 14.
    Mobile LMS UsingJoomla Another upcoming app from Techjoomla.. Already in use by Enterprise in Healthcare, Marketing & more ! ● Take a course on iPad ● Go through a few lessons ● Go meet your girlfriend ● Come back and start the course on your PC ● Fortunately the iPad spoke REST ● Uploaded your progress to the Web LMS ● You can resume where you left off
  • 15.
    Content Synchronization ● Subordinate creates articles in Joomla on staging server ● Manager saves and views article on staging server ● Manager then 'pushes' an approved article over to production ● The staging & production site speak REST
  • 16.
    Preventive Maintenance New machine provisioning API Agent Maintenance announcements
  • 17.
    Preventive Maintenance ● Electronic monitoring of machines - like a drill ● 'Vital stats' like temperature, vibrations monitored ● Deviations send alerts to engineers & management ● Causes discussed on private forum and conclusion archived for future reference
  • 18.
    Current Drawbacks ● Need to write plugins ● Small amount of code rewrite ● Components not using Joomla MVC may need a lot of plugin code
  • 19.
    What's Available ● Jomsocial ● Joomla Articles & Categories ● Some of AEC
  • 20.
    Few Ideas ● view.json.php ● restcontroller.php ● format=json
  • 21.
    Next Steps ● Discussion on integrating Framework on Framework (FOF) into Joomla core ● FOF gives access to RESTful json data ● Build on top of it to implement all of POST/GET/PUT/DELETE and various HTTP codes ● Re-use existing 'models' to fetch data objects
  • 22.
    Please join in! ● Webservices working group http://docs.joomla.org/Web_Services_Working_Gro ● Code on github https://github.com/techjoomla/com_api-plugins https://github.com/techjoomla/com_api ● Joomla! General Development Google Group https://groups.google.com/forum/?fromgroups=#!for
  • 23.
    Thank You Ashwin Date Twitter: @coolbung / @techjoomla Email : ashwin@techjoomla.com http://www.slideshare.net/coolbung