SlideShare a Scribd company logo
1 of 31
and being HAPI
Taking a REST
Chris Davenport
Joomla Production Leadership Team
Architectural Style of the Web
"The World Wide Web has succeeded in large
part because its software architecture has been
designed to meet the needs of an Internet-
scale distributed hypermedia system."
Fielding, Roy Thomas. Architectural Styles and the Design of Network-based Software Architectures.
Doctoral dissertation, University of California, Irvine, 2000.
Web experiences growing pains
Web standards adjusted
Fielding: Analysis of network-based software
architectures
● Key constraints give rise to desired
properties
● Internet-scale distributed hypermedia
Adjustments/corrections made
● HTTP/1.1 RFC 2616
● Uniform Resource Identifiers RFC 3986
● and others
Web saved! Hurray!
(2008: Google reaches 1 trillion unique URLs)
What is REST?
2000: Fielding's PhD dissertation
● REST (Representational State Transfer)
● Architectural style for building scalable,
distributed, hypermedia applications.
● The architectural style that has been used
to guide the design and development of
the World Wide Web's architecture.
REST constraints
● client-server
● stateless
● cache
● uniform interface
● layered system
● code-on-demand (optional)
The important point is to not unintentionally
violate these constraints.
Client-server
Client and server may be
● developed at different times
● by different people
● evolving at different rates
But they must always have a
Shared Understanding
Resource-based
Resources are identified by URIs:
www.example.com/articles/1234
Note: This might be the same resource at some point in time:
www.example.com/articles/latest-news
Manipulation of resources via
representations
Ceci n'est pas une pipe
Translation: "This is not a pipe"
Self-descriptive messages
There must be enough information in each
message for the recipient to understand it.
Self-contained messages have their limits.
There will always be out-of-band information
needed to understand messages. The problem
is where to draw the line.
Hypermedia constraint
Hypermedia as the engine of application state
● Clients drive application state by
○ following hypermedia links
○ or submitting forms
● Clients should treat URL's as opaque
○ except for URI Templates (RFC 6570)
● Fielding: "Servers must have the freedom to
control their own namespace"
○ Servers can change URIs without breaking clients
What about Joomla?
Shared
code
Site
Admin
Modules
Web
browser
HTML
Server (Joomla)Client
What about Joomla?
Shared
code
Site
Admin
Modules
Web
browser
HTML
Server (Joomla)Client
AJAX
JSON
What about Joomla?
● Mobile (and other) devices
● Internet of Things
● Open data
● Integrating business processes
● Electronic Data Interchange (EDI)
Joomla is an information silo
Components can't easily
communicate with each other
Joomla Hypermedia Services
● Break Joomla components/modules into
smaller "services".
● Services have a uniform interface
○ JInput for input
○ JSON, XML, HAL, etc. for output
● Services communicate using media types
○ application/vnd.joomla.*
○ Additional constraints using schemas/profiles
Joomla Next?
Services
Device
Server
HAL
HAL
HAPI
Server (Joomla)
application/hal+*
Resource representation
_embedded _links
rel href
rel href
rel href
Joomla Next?
Services
Site UI
Admin
UI
Web
browser
HTML
HTML
HAL
HAL
Server (Joomla)
Client
HAPI
Joomla Next?
Services
Site UI
Admin
UI
Web
browser
AJAX
HAL
HTML
HTML
HAL
HAL
Server (Joomla)
Client
HAPI
Joomla Next?
Services
Site UI
Admin
UI
HAL
HAL
Server (Joomla)Client
Web browser
HAPI
Joomla Next?
Services
Device
Server
HAL
HAL
Server (Joomla)
CLI
HAL
Daemon
HAL
HAPI HAPI
Joomla Next?
ServicesUI
Web browser
HTML HAL
Server (Joomla)Client
HAPI
Services
HAL
Another server
HAPI
UI
What's inside a service?
Services
Server (Joomla)
HAPI
C
M
V
RAD/SDK/FoF
CLI
Drupal 8
HAPI
Web Services Working Group
http://docs.joomla.org/Web_Services_Working_Group
● Web Services Specification
○ currently at second draft
● Sample code
○ based on new MVC in Joomla 3.x
○ structure allows it to be retrofitted to any component
without touching existing code
○ articles, weblinks, categories
○ can be browsed with any generic HAL client
application/vnd.joomla.*+hal+*
Resource representation
_embedded _links _meta
rel href
rel href
rel href
Hierarchy of media types
JSON
HAL
vnd.joomla.service
vnd.joomla.list
vnd.joomla.item
XML
Remember: Shared understanding
WSWG Next Steps
http://docs.joomla.org/Web_Services_Working_Group
● Web Services Specification
○ more people to read and comment
● Coding
○ more people to write code for a J3.x implementation
○ client SDK (JavaScript and PHP versions)
● Future
○ more people to work on an architecture for Joomla
beyond the 3.x cycle
Questions?
Play with a demo at
http://demo.davenporttechnology.com/api/hal-browser/browser.html#http://demo.davenporttechnology.com/api
Thank you for listening
Image credits
http://commons.wikimedia.org/wiki/File:Paris_-_Jardin_du_Luxembourg_-_le_soir.JPG License: GNU
FDL
http://en.wikipedia.org/wiki/File:Crying-girl.jpg License: CC-A-SA 2.0
http://www.veezzle.com/photo/1529836/Class-of-2007-USAF-Academy-Graduation-Hat-Hurray-Toss-
Thunderbird-Fly-Over License: CC-A 3.0
http://en.wikiversity.org/wiki/File:Alvano-Sabina-pipe.jpg License: GNU FDL
http://commons.wikimedia.org/wiki/File:Ralls_Texas_Grain_Silos_2010.jpg License: Public domain

More Related Content

What's hot

Web 2 0 Fullfeatures
Web 2 0 FullfeaturesWeb 2 0 Fullfeatures
Web 2 0 Fullfeatures
vsnmurthy
 
Website Designing Services | Web Development Vizag | Web Solutions Visakhapatnam
Website Designing Services | Web Development Vizag | Web Solutions VisakhapatnamWebsite Designing Services | Web Development Vizag | Web Solutions Visakhapatnam
Website Designing Services | Web Development Vizag | Web Solutions Visakhapatnam
Gods Grace Technologies
 
A JBoss Enterprise Middleware Solution to Improving Business Execution
A JBoss Enterprise Middleware Solution to Improving Business ExecutionA JBoss Enterprise Middleware Solution to Improving Business Execution
A JBoss Enterprise Middleware Solution to Improving Business Execution
CITYTECH, Inc.
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slide
Fabio Franzini
 

What's hot (19)

Stc Presentation2010
Stc Presentation2010Stc Presentation2010
Stc Presentation2010
 
Web 2 0 Fullfeatures
Web 2 0 FullfeaturesWeb 2 0 Fullfeatures
Web 2 0 Fullfeatures
 
Web 2 0 Fullfeatures
Web 2 0 FullfeaturesWeb 2 0 Fullfeatures
Web 2 0 Fullfeatures
 
Life ray training
Life ray training Life ray training
Life ray training
 
Website Designing Services | Web Development Vizag | Web Solutions Visakhapatnam
Website Designing Services | Web Development Vizag | Web Solutions VisakhapatnamWebsite Designing Services | Web Development Vizag | Web Solutions Visakhapatnam
Website Designing Services | Web Development Vizag | Web Solutions Visakhapatnam
 
A JBoss Enterprise Middleware Solution to Improving Business Execution
A JBoss Enterprise Middleware Solution to Improving Business ExecutionA JBoss Enterprise Middleware Solution to Improving Business Execution
A JBoss Enterprise Middleware Solution to Improving Business Execution
 
Liferay as solution for legacy applications
Liferay as solution for legacy applicationsLiferay as solution for legacy applications
Liferay as solution for legacy applications
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per office
 
Flex vs. HTML5 for RIAS
Flex vs. HTML5 for RIASFlex vs. HTML5 for RIAS
Flex vs. HTML5 for RIAS
 
Oracle web center
Oracle web centerOracle web center
Oracle web center
 
Oracle WebCenter Content User Training
Oracle WebCenter Content User Training Oracle WebCenter Content User Training
Oracle WebCenter Content User Training
 
Liferay portal advantages
Liferay portal advantagesLiferay portal advantages
Liferay portal advantages
 
A Case for Grails
A Case for GrailsA Case for Grails
A Case for Grails
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Interactive Mobile Applications in the Enterprise: Are You Ready?
Interactive Mobile Applications in the Enterprise: Are You Ready?Interactive Mobile Applications in the Enterprise: Are You Ready?
Interactive Mobile Applications in the Enterprise: Are You Ready?
 
Liferay portal – moving beyond content management
Liferay portal – moving beyond content managementLiferay portal – moving beyond content management
Liferay portal – moving beyond content management
 
Moved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portalMoved to https://slidr.io/azzazzel/what-is-a-portal
Moved to https://slidr.io/azzazzel/what-is-a-portal
 
sMash_for_zOS-users
sMash_for_zOS-userssMash_for_zOS-users
sMash_for_zOS-users
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slide
 

Similar to Taking a REST and being HAPI

WEB-DBMS A quick reference
WEB-DBMS A quick referenceWEB-DBMS A quick reference
WEB-DBMS A quick reference
Marc Dy
 

Similar to Taking a REST and being HAPI (20)

9 10 july2020
9 10 july20209 10 july2020
9 10 july2020
 
Fundamental of-web design-trends-20142
Fundamental of-web design-trends-20142Fundamental of-web design-trends-20142
Fundamental of-web design-trends-20142
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Cross platform development - Rhomobile
Cross platform development - RhomobileCross platform development - Rhomobile
Cross platform development - Rhomobile
 
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management SystemBarcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
Barcamp Hong Kong 2014 - Commercial Use of OSS Web Content Management System
 
Web development using html and wordpress
Web development using html and wordpressWeb development using html and wordpress
Web development using html and wordpress
 
WEB-DBMS A quick reference
WEB-DBMS A quick referenceWEB-DBMS A quick reference
WEB-DBMS A quick reference
 
1. web technology basics
1. web technology basics1. web technology basics
1. web technology basics
 
nptl cc video.pptx
nptl cc video.pptxnptl cc video.pptx
nptl cc video.pptx
 
What is the difference between an api and web services
What is the difference between an api and web servicesWhat is the difference between an api and web services
What is the difference between an api and web services
 
Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016
 
Entando datasheet
Entando datasheetEntando datasheet
Entando datasheet
 
Developing with HTML5
Developing with HTML5Developing with HTML5
Developing with HTML5
 
Week2 cloud computing week2
Week2 cloud computing week2Week2 cloud computing week2
Week2 cloud computing week2
 
REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulness
 
Transforming to Microservices
Transforming to MicroservicesTransforming to Microservices
Transforming to Microservices
 
01 web 2.0 - more than a pretty face for soa
01   web 2.0 - more than a pretty face for soa01   web 2.0 - more than a pretty face for soa
01 web 2.0 - more than a pretty face for soa
 
Service Oriented Architecture
Service Oriented Architecture Service Oriented Architecture
Service Oriented Architecture
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIAPOLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 

More from Chris Davenport

More from Chris Davenport (9)

JoomlaDay UK 2016 Presentation
JoomlaDay UK 2016 PresentationJoomlaDay UK 2016 Presentation
JoomlaDay UK 2016 Presentation
 
Leave this to me. I'm British. I know how to queue.
Leave this to me.  I'm British.  I know how to queue.Leave this to me.  I'm British.  I know how to queue.
Leave this to me. I'm British. I know how to queue.
 
JAB2012 Smart Search Presentation
JAB2012 Smart Search PresentationJAB2012 Smart Search Presentation
JAB2012 Smart Search Presentation
 
Template changes for Joomla 1.6
Template changes for Joomla 1.6Template changes for Joomla 1.6
Template changes for Joomla 1.6
 
Joomla PLT Summit Feedback
Joomla PLT Summit FeedbackJoomla PLT Summit Feedback
Joomla PLT Summit Feedback
 
Template tuning for high performance
Template tuning for high performanceTemplate tuning for high performance
Template tuning for high performance
 
Joomla Day UK 2009 Template Design Presentation
Joomla Day UK 2009 Template Design PresentationJoomla Day UK 2009 Template Design Presentation
Joomla Day UK 2009 Template Design Presentation
 
Joomla Day UK 2009 Menus Presentation
Joomla Day UK 2009 Menus PresentationJoomla Day UK 2009 Menus Presentation
Joomla Day UK 2009 Menus Presentation
 
Joomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic TemplatesJoomla Day UK 2009 Basic Templates
Joomla Day UK 2009 Basic Templates
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Taking a REST and being HAPI