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
4. How did it happen ?
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 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)
9. 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
13. 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
14. 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
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
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