SlideShare a Scribd company logo
1 of 71
Download to read offline
©2016 Acquia Inc. — Confidential and Proprietary
API-first Drupal
and the future of the CMS
Preston So
Development Manager, Acquia Labs
March 8, 2017
©2016 Acquia Inc.
Welcome!
Preston So (@prestonso) has been a web developer and designer since
2001, a creative professional since 2004, and a Drupal developer since
2007. As Development Manager of Acquia Labs, Preston leads new
open-source and research initiatives at Acquia. Preston has presented
keynotes at conferences on three continents in both English and
Portuguese and speaks about diverse topics such as decoupled Drupal,
responsive design, front-end development, and user experience.
– drupal.org/u/prestonso
– preston.so@acquia.com
©2016 Acquia Inc.
Welcome!
©2016 Acquia Inc.
What we’ll cover
– Imagining the future
– The world around us is evolving
– API-first Drupal
– Web services and SDKs
– The JavaScript renaissance
– Epilogue: Drupal’s API-first future
©2016 Acquia Inc.
Imagining the future
Think back to your first
Drupal site
Think about
where Drupal is now
What did digital
experiences look like in
2008?
What did digital
experiences look like in
2012?
What do digital
experiences look like in
2016?
What will digital
experiences look like in
2020?
Simone Biles
Katie Ledecky
Wearables Conversational
interfaces
Internet of
Things (IoT)
Augmented
and virtual
reality
AI and machine
learning
Wearables Conversational
interfaces
Internet of
Things (IoT)
Augmented
and virtual
reality
AI and machine
learning
©2016 Acquia Inc.
The world around us is
evolving
We are in the midst of a content revolution ...
… and a reinvention of content delivery.
The web is now just the bare minimum among touchpoints.
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
We’re moving from standalone digital experiences to entire digital ecosystems ...
Native
mobile
app
Website
IoT app
Native
app
Chat
app
Single-
page
app
Other
back
ends
Set-top
box
Content
store
Pull-based Push-based
… from pull-based content delivery to push-based content delivery ...
Amazon
Echo push
notification
AR/VR
notification
overlay
In-store
product
alerts
… and from consumption of content to interaction with content.
Amazon
Echo push
notification
User-
generated
response
Interaction
with AR/VR
interface
AR/VR
notification
overlay
In New York City, Drupal
feeds information to
kiosks in the MTA.
Drupal 8 provides data to
smartphone apps linked
to Tesla vehicles.
Lufthansa supplies its in-
flight entertainment
systems with Drupal 8.
Drupal is now a centerpiece of application ecosystems.
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
But we have new competition: the headless CMS.
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
And we have new devices or touchpoints every day.
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
Smart
watches
Fitness
devices
Arduino
boards
Beacons
AR/VR
apps
Rasp-
berry Pi
Conver-
sational
UIs
LED
displays
IoT apps
Native
apps
Chat
apps
Single-
page
apps
Other
back
ends
Set-top
boxes
Smart
watches
Fitness
devices
Arduino
boards
Beacons
AR/VR
apps
Rasp-
berry Pi
Conver-
sational
UIs
LED
displays
Our mission is to make Drupal the best API-first CMS.
©2016 Acquia Inc.
API-first Drupal
API-First Drupal and the Future of the CMS
Think of Earth as one contiguous unit: a monolith.
API-First Drupal and the Future of the CMS
Earth responds to requests from decoupled bases.
request
response
Drupal is a monolithic CMS backing decoupled applications.
HTTP request
HTTP response
HTTP request
HTTP response
Site or repository
built in Drupal
Decoupled
application
HTTP request
HTTP response (JSON, XML)
Site or repository built in
Drupal
Decoupled
application
REST API
Decoupled
application
HTTP client
©2016 Acquia Inc.
API-first (decoupled) Drupal
– Decoupled Drupal, or API-first Drupal, is the process of
employing Drupal as a data service which exposes data
for consumption by other applications.
– Drupal can be used to back other back-end applications
(Rails, .NET, PHP) as well as native applications, single-
page JavaScript applications, and IoT applications.
– A REST API is the most common entry point for
decoupled applications.
Monolithic vs. decoupled
Drupal
Drupal front end
PHP
Data
Templates
HTML
Drupal
Decoupled application
PHP
Data
Templates
HTML
Other
language
JSON
REST API
Drupal
Native Android application
PHP
Data
Templates
App code
Java
JSON
Drupal
Single-page application
(universal JavaScript)
PHP
Data
Templates
HTML
JS
JSON
REST API REST API
Silex application
Data
Templates
HTML or
app code
JSON
Drupal
Native iOS application
PHP
Obj-C PHP
REST API
©2016 Acquia Inc.
Web services and
SDKs
HTTP request
HTTP response (JSON, XML)
Site or repository built in
Drupal
Decoupled
application
Web services
Decoupled
application
Software
development
kit (SDK)
API-first ideal
Web services
Full feature set
Single REST API in core
Specification flexibility
SDKs
For JavaScript apps
For native apps
For back-end apps
How can we outperform headless CMSes?
Web services in Drupal 8 are currently spread
across a variety of implementations.
Core
REST
modules
Services
(D8)
RELAXed
Web
Services
Content entity CRUD
Views REST exports
Resource plugins
Configuration entity CRUD
Configurable route prefixes
User login and logout
Translations
Revisions
File attachments
Entity
Query API
Sorting and range
Conditions
Pagination
We need a full feature set and unified REST API in
Drupal core.
Future
core REST
Content entity CRUD
Views REST exports
Resource plugins
Configuration entity CRUD
Configurable route prefixes
User login and logout
Translations
Revisions
File attachments
Sorting and range
Conditions
Pagination
Application developers should be able to use the
specification of their choice.
HAL+
JSON
JSON APICouchDB GraphQL
DEVELOPERS
DEVELOPERS
DEVELOPERS
DEVELOPERS
DEVELOPERS
DEVELOPERS
DEVELOPERS
DEVELOPERS
JavaScript
Native app
Rails
IoT app
Currently, consuming Drupal data requires a
basic understanding of Drupal’s REST API.
JavaScript
application
I need the title of node/1.
But where can I get to it?
And how do I get just the
title?
Current
core REST Here is the node ID, the
node UUID, the node
type, the node language,
the node title, the node
author, the node created
Waterwheel is an ecosystem of SDKs that accelerate
development of Drupal-backed applications.
JavaScript
application
I need the title of node/1.
But where can I get to it?
And how do I get just the
title?
Current
core REST
Waterwheel.js SDKI need to get node/1
(and I know the route is
/node/1?_format=json).
Waterwheel is an ecosystem of SDKs that accelerate
development of Drupal-backed applications.
JavaScript
application
Current
core REST
Waterwheel.js SDK
Here is the node ID, the
node UUID, the node
type, the node language,
the node title, the node
author, the node created
The title of the first article is
“Blueberry Hill” (and I know
it’s in the response at
response.title[0].value).
github.com/acquia/waterwheel-js
github.com/acquia/waterwheel-swift
©2016 Acquia Inc.
The JavaScript
renaissance
Static pages
Subscribe to our newsletter You have been successfully
subscribed!
E-mail address
Submit
full-page refresh
Drupal
Drupal front end
PHP
Data
Templates
HTML
Drupal
Drupal front end
Data
Templates
HTML
Dynamic pages with Ajax
Subscribe to our newsletter
E-mail address
Submit
Drupal
Drupal front end
PHP
Data
Templates
HTML
Subscribe to our newsletter
Success!
E-mail address
Submit
Subscribe to our newsletter
E-mail address
Submit
AJAX
request
AJAX
response
Dynamic pages with client-side rendering
Subscribe
E-mail
Submit
HTTP
request
HTTP
response
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Success!
Here are
others that
might
interest you:
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Drupal
Decoupled front end
REST API
©2016 Acquia Inc.
Rewards of fully decoupled Drupal
– Separation of concerns (structure vs. presentation)
– Content syndication (write once, publish everywhere)
– Differentiated development velocities between front and
back end (independent front-end redesigns)
– Rich application ecosystem (auxiliary applications such
as SPAs, native mobile, and IoT)
©2016 Acquia Inc.
Risks of fully decoupled Drupal
– Additional point of failure (REST API, other hosting)
– No cross-site scripting protection or input sanitization
– No in-place, in-context editing or administration
– No layout and display management
– No previewable content workflow
– No modules affecting the front end
– No system notifications (errors, messages)
– No BigPipe progressive loading or cache tags
– No accessible markup or user experience benefits
©2016 Acquia Inc.
When should you decouple Drupal?
– A site powering one or more other sites
– A site powering one or more other applications
– A site powering multiple sites or applications
– Standalone applications
– Standalone sites
©2016 Acquia Inc.
For standalone sites and apps …
– You don’t need the overhead of a decoupled
architecture to power a standalone site or application.
– Doing so can lead to workarounds that duplicate,
interrupt, or otherwise obfuscate the integrity of end-to-
end Drupal.
– There is a better solution: progressive decoupling.
Fully decoupled Drupal
Subscribe
E-mail
Submit
HTTP
request
HTTP
response
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Success!
Here are
others that
might
interest you:
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Drupal
JavaScript framework
REST API
Fully decoupled Drupal
Subscribe
E-mail
Submit
HTTP
request
HTTP
response
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Success!
Here are
others that
might
interest you:
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Drupal
JavaScript framework
REST API
Progressively decoupled Drupal
Subscribe
E-mail
Submit
HTTP
request
HTTP
response
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Success!
Here are
others that
might
interest you:
Lorem
ipsum dolor
sit amet,
consectetuer
adipiscing.
Drupal
REST API
Drupal front end
JS framework
©2016 Acquia Inc.
Risks of fully decoupled Drupal
– Additional point of failure (REST API, other hosting)
– No cross-site scripting protection or input sanitization
– No in-place, in-context editing or administration
– No layout and display management
– No previewable content workflow
– No modules affecting the front end
– No system notifications (errors, messages)
– No BigPipe progressive loading or cache tags
– No accessible markup or user experience benefits
©2016 Acquia Inc.
Rewards of progressively decoupled Drupal
– No additional point of failure (REST API, other hosting)
– Cross-site scripting protection and input sanitization
– In-place, in-context editing and administration
– Layout and display management
– Previewable content workflow
– Modules affecting the front end
– System notifications (errors, messages)
– BigPipe progressive loading and cache tags
– Accessible markup and user experience benefits
©2016 Acquia Inc.
Epilogue: Drupal’s API-
first future
Think again about
where Drupal is now
How can we make Drupal
more API-first?
How can we benefit from
a native user experience
and
editorial capabilities?
Should Drupal be
decoupled out of the box?
Should all CMSes be
decoupled out of the box?
More information
➔ API-first initiative
◆ www.drupal.org/node/2757967
➔ API-first initiative at DrupalCon Dublin
◆ events.drupal.org/dublin2016/sessions/api-first-initiative
➔ API-first initiative at DrupalCon Baltimore
◆ events.drupal.org/baltimore2017/sessions/api-first-initiative
©2016 Acquia Inc.
Thank you!
Preston So (@prestonso)
drupal.org/u/prestonso
preston.so@acquia.com
Learn more about Acquia Labs:
acquia.com/resources/acquia-labs

More Related Content

More from Acquia

Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowAcquia
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner BootcampAcquia
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcampAcquia
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner BootcampAcquia
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner BootcampAcquia
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYAcquia
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineAcquia
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless futureAcquia
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsAcquia
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...Acquia
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Acquia
 
Leave Local Dev Behind: Start Writing Your Code In The Cloud
Leave Local Dev Behind: Start Writing Your Code In The CloudLeave Local Dev Behind: Start Writing Your Code In The Cloud
Leave Local Dev Behind: Start Writing Your Code In The CloudAcquia
 
Overwhelmed with data from different sources and systems?
Overwhelmed with data from different sources and systems?Overwhelmed with data from different sources and systems?
Overwhelmed with data from different sources and systems?Acquia
 
You've got a CDP, so what?
You've got a CDP, so what?You've got a CDP, so what?
You've got a CDP, so what?Acquia
 
CDP vs CRM - What's the difference?
CDP vs CRM - What's the difference?CDP vs CRM - What's the difference?
CDP vs CRM - What's the difference?Acquia
 
Making the Jump to a Digital-First Business Strategy: A Marketer’s Guide to P...
Making the Jump to a Digital-First Business Strategy: A Marketer’s Guide to P...Making the Jump to a Digital-First Business Strategy: A Marketer’s Guide to P...
Making the Jump to a Digital-First Business Strategy: A Marketer’s Guide to P...Acquia
 
Driving Conversions Through Deep Personalization
Driving Conversions Through Deep PersonalizationDriving Conversions Through Deep Personalization
Driving Conversions Through Deep PersonalizationAcquia
 
Understanding how a CDP can unify your Martech
Understanding how a CDP can unify your MartechUnderstanding how a CDP can unify your Martech
Understanding how a CDP can unify your MartechAcquia
 
Why Open Source is the Smart choice for Higher Education
Why Open Source is the Smart choice for Higher EducationWhy Open Source is the Smart choice for Higher Education
Why Open Source is the Smart choice for Higher EducationAcquia
 

More from Acquia (20)

Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development WorkflowImprove Code Quality and Time to Market: 100% Cloud-Based Development Workflow
Improve Code Quality and Time to Market: 100% Cloud-Based Development Workflow
 
September Partner Bootcamp
September Partner BootcampSeptember Partner Bootcamp
September Partner Bootcamp
 
August partner bootcamp
August partner bootcampAugust partner bootcamp
August partner bootcamp
 
July 2021 Partner Bootcamp
July  2021 Partner BootcampJuly  2021 Partner Bootcamp
July 2021 Partner Bootcamp
 
May Partner Bootcamp
May Partner BootcampMay Partner Bootcamp
May Partner Bootcamp
 
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASYDRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
DRUPAL 7 END OF LIFE IS NEAR - MIGRATE TO DRUPAL 9 FAST AND EASY
 
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead MachineWork While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
Work While You Sleep: The CMO’s Guide to a 24/7/365 Lead Machine
 
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B LeadsAcquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
Acquia webinar: Leveraging Drupal to Bury Your Sales Team In B2B Leads
 
April partner bootcamp deck cookieless future
April partner bootcamp deck  cookieless futureApril partner bootcamp deck  cookieless future
April partner bootcamp deck cookieless future
 
How to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutionsHow to enhance cx through personalised, automated solutions
How to enhance cx through personalised, automated solutions
 
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
DRUPAL MIGRATIONS AND DRUPAL 9 INNOVATION: HOW PAC-12 DELIVERED DIGITALLY FOR...
 
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
Customer Experience (CX): 3 Key Factors Shaping CX Redesign in 2021
 
Leave Local Dev Behind: Start Writing Your Code In The Cloud
Leave Local Dev Behind: Start Writing Your Code In The CloudLeave Local Dev Behind: Start Writing Your Code In The Cloud
Leave Local Dev Behind: Start Writing Your Code In The Cloud
 
Overwhelmed with data from different sources and systems?
Overwhelmed with data from different sources and systems?Overwhelmed with data from different sources and systems?
Overwhelmed with data from different sources and systems?
 
You've got a CDP, so what?
You've got a CDP, so what?You've got a CDP, so what?
You've got a CDP, so what?
 
CDP vs CRM - What's the difference?
CDP vs CRM - What's the difference?CDP vs CRM - What's the difference?
CDP vs CRM - What's the difference?
 
Making the Jump to a Digital-First Business Strategy: A Marketer’s Guide to P...
Making the Jump to a Digital-First Business Strategy: A Marketer’s Guide to P...Making the Jump to a Digital-First Business Strategy: A Marketer’s Guide to P...
Making the Jump to a Digital-First Business Strategy: A Marketer’s Guide to P...
 
Driving Conversions Through Deep Personalization
Driving Conversions Through Deep PersonalizationDriving Conversions Through Deep Personalization
Driving Conversions Through Deep Personalization
 
Understanding how a CDP can unify your Martech
Understanding how a CDP can unify your MartechUnderstanding how a CDP can unify your Martech
Understanding how a CDP can unify your Martech
 
Why Open Source is the Smart choice for Higher Education
Why Open Source is the Smart choice for Higher EducationWhy Open Source is the Smart choice for Higher Education
Why Open Source is the Smart choice for Higher Education
 

Recently uploaded

Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataSafe Software
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxYounusS2
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.francesco barbera
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncObject Automation
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceMartin Humpolec
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 

Recently uploaded (20)

Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial DataCloud Revolution: Exploring the New Wave of Serverless Spatial Data
Cloud Revolution: Exploring the New Wave of Serverless Spatial Data
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Babel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptxBabel Compiler - Transforming JavaScript for All Browsers.pptx
Babel Compiler - Transforming JavaScript for All Browsers.pptx
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.Digital magic. A small project for controlling smart light bulbs.
Digital magic. A small project for controlling smart light bulbs.
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation Inc
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Things you didn't know you can use in your Salesforce
Things you didn't know you can use in your SalesforceThings you didn't know you can use in your Salesforce
Things you didn't know you can use in your Salesforce
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 

API-First Drupal and the Future of the CMS

  • 1. ©2016 Acquia Inc. — Confidential and Proprietary API-first Drupal and the future of the CMS Preston So Development Manager, Acquia Labs March 8, 2017
  • 2. ©2016 Acquia Inc. Welcome! Preston So (@prestonso) has been a web developer and designer since 2001, a creative professional since 2004, and a Drupal developer since 2007. As Development Manager of Acquia Labs, Preston leads new open-source and research initiatives at Acquia. Preston has presented keynotes at conferences on three continents in both English and Portuguese and speaks about diverse topics such as decoupled Drupal, responsive design, front-end development, and user experience. – drupal.org/u/prestonso – preston.so@acquia.com
  • 4. ©2016 Acquia Inc. What we’ll cover – Imagining the future – The world around us is evolving – API-first Drupal – Web services and SDKs – The JavaScript renaissance – Epilogue: Drupal’s API-first future
  • 6. Think back to your first Drupal site
  • 8. What did digital experiences look like in 2008?
  • 9. What did digital experiences look like in 2012?
  • 10. What do digital experiences look like in 2016?
  • 11. What will digital experiences look like in 2020?
  • 13. Wearables Conversational interfaces Internet of Things (IoT) Augmented and virtual reality AI and machine learning
  • 14. Wearables Conversational interfaces Internet of Things (IoT) Augmented and virtual reality AI and machine learning
  • 15. ©2016 Acquia Inc. The world around us is evolving
  • 16. We are in the midst of a content revolution ...
  • 17. … and a reinvention of content delivery.
  • 18. The web is now just the bare minimum among touchpoints. IoT apps Native apps Chat apps Single- page apps Other back ends Set-top boxes
  • 19. We’re moving from standalone digital experiences to entire digital ecosystems ... Native mobile app Website IoT app Native app Chat app Single- page app Other back ends Set-top box Content store
  • 20. Pull-based Push-based … from pull-based content delivery to push-based content delivery ... Amazon Echo push notification AR/VR notification overlay In-store product alerts
  • 21. … and from consumption of content to interaction with content. Amazon Echo push notification User- generated response Interaction with AR/VR interface AR/VR notification overlay
  • 22. In New York City, Drupal feeds information to kiosks in the MTA. Drupal 8 provides data to smartphone apps linked to Tesla vehicles. Lufthansa supplies its in- flight entertainment systems with Drupal 8.
  • 23. Drupal is now a centerpiece of application ecosystems. IoT apps Native apps Chat apps Single- page apps Other back ends Set-top boxes
  • 24. But we have new competition: the headless CMS. IoT apps Native apps Chat apps Single- page apps Other back ends Set-top boxes
  • 25. And we have new devices or touchpoints every day. IoT apps Native apps Chat apps Single- page apps Other back ends Set-top boxes Smart watches Fitness devices Arduino boards Beacons AR/VR apps Rasp- berry Pi Conver- sational UIs LED displays
  • 29. Think of Earth as one contiguous unit: a monolith.
  • 31. Earth responds to requests from decoupled bases. request response
  • 32. Drupal is a monolithic CMS backing decoupled applications. HTTP request HTTP response
  • 33. HTTP request HTTP response Site or repository built in Drupal Decoupled application
  • 34. HTTP request HTTP response (JSON, XML) Site or repository built in Drupal Decoupled application REST API Decoupled application HTTP client
  • 35. ©2016 Acquia Inc. API-first (decoupled) Drupal – Decoupled Drupal, or API-first Drupal, is the process of employing Drupal as a data service which exposes data for consumption by other applications. – Drupal can be used to back other back-end applications (Rails, .NET, PHP) as well as native applications, single- page JavaScript applications, and IoT applications. – A REST API is the most common entry point for decoupled applications.
  • 36. Monolithic vs. decoupled Drupal Drupal front end PHP Data Templates HTML Drupal Decoupled application PHP Data Templates HTML Other language JSON REST API
  • 37. Drupal Native Android application PHP Data Templates App code Java JSON Drupal Single-page application (universal JavaScript) PHP Data Templates HTML JS JSON REST API REST API
  • 38. Silex application Data Templates HTML or app code JSON Drupal Native iOS application PHP Obj-C PHP REST API
  • 39. ©2016 Acquia Inc. Web services and SDKs
  • 40. HTTP request HTTP response (JSON, XML) Site or repository built in Drupal Decoupled application Web services Decoupled application Software development kit (SDK) API-first ideal
  • 41. Web services Full feature set Single REST API in core Specification flexibility SDKs For JavaScript apps For native apps For back-end apps How can we outperform headless CMSes?
  • 42. Web services in Drupal 8 are currently spread across a variety of implementations. Core REST modules Services (D8) RELAXed Web Services Content entity CRUD Views REST exports Resource plugins Configuration entity CRUD Configurable route prefixes User login and logout Translations Revisions File attachments Entity Query API Sorting and range Conditions Pagination
  • 43. We need a full feature set and unified REST API in Drupal core. Future core REST Content entity CRUD Views REST exports Resource plugins Configuration entity CRUD Configurable route prefixes User login and logout Translations Revisions File attachments Sorting and range Conditions Pagination
  • 44. Application developers should be able to use the specification of their choice. HAL+ JSON JSON APICouchDB GraphQL
  • 47. Currently, consuming Drupal data requires a basic understanding of Drupal’s REST API. JavaScript application I need the title of node/1. But where can I get to it? And how do I get just the title? Current core REST Here is the node ID, the node UUID, the node type, the node language, the node title, the node author, the node created
  • 48. Waterwheel is an ecosystem of SDKs that accelerate development of Drupal-backed applications. JavaScript application I need the title of node/1. But where can I get to it? And how do I get just the title? Current core REST Waterwheel.js SDKI need to get node/1 (and I know the route is /node/1?_format=json).
  • 49. Waterwheel is an ecosystem of SDKs that accelerate development of Drupal-backed applications. JavaScript application Current core REST Waterwheel.js SDK Here is the node ID, the node UUID, the node type, the node language, the node title, the node author, the node created The title of the first article is “Blueberry Hill” (and I know it’s in the response at response.title[0].value).
  • 51. ©2016 Acquia Inc. The JavaScript renaissance
  • 52. Static pages Subscribe to our newsletter You have been successfully subscribed! E-mail address Submit full-page refresh Drupal Drupal front end PHP Data Templates HTML Drupal Drupal front end Data Templates HTML
  • 53. Dynamic pages with Ajax Subscribe to our newsletter E-mail address Submit Drupal Drupal front end PHP Data Templates HTML Subscribe to our newsletter Success! E-mail address Submit Subscribe to our newsletter E-mail address Submit AJAX request AJAX response
  • 54. Dynamic pages with client-side rendering Subscribe E-mail Submit HTTP request HTTP response Lorem ipsum dolor sit amet, consectetuer adipiscing. Lorem ipsum dolor sit amet, consectetuer adipiscing. Success! Here are others that might interest you: Lorem ipsum dolor sit amet, consectetuer adipiscing. Drupal Decoupled front end REST API
  • 55. ©2016 Acquia Inc. Rewards of fully decoupled Drupal – Separation of concerns (structure vs. presentation) – Content syndication (write once, publish everywhere) – Differentiated development velocities between front and back end (independent front-end redesigns) – Rich application ecosystem (auxiliary applications such as SPAs, native mobile, and IoT)
  • 56. ©2016 Acquia Inc. Risks of fully decoupled Drupal – Additional point of failure (REST API, other hosting) – No cross-site scripting protection or input sanitization – No in-place, in-context editing or administration – No layout and display management – No previewable content workflow – No modules affecting the front end – No system notifications (errors, messages) – No BigPipe progressive loading or cache tags – No accessible markup or user experience benefits
  • 57. ©2016 Acquia Inc. When should you decouple Drupal? – A site powering one or more other sites – A site powering one or more other applications – A site powering multiple sites or applications – Standalone applications – Standalone sites
  • 58. ©2016 Acquia Inc. For standalone sites and apps … – You don’t need the overhead of a decoupled architecture to power a standalone site or application. – Doing so can lead to workarounds that duplicate, interrupt, or otherwise obfuscate the integrity of end-to- end Drupal. – There is a better solution: progressive decoupling.
  • 59. Fully decoupled Drupal Subscribe E-mail Submit HTTP request HTTP response Lorem ipsum dolor sit amet, consectetuer adipiscing. Lorem ipsum dolor sit amet, consectetuer adipiscing. Success! Here are others that might interest you: Lorem ipsum dolor sit amet, consectetuer adipiscing. Drupal JavaScript framework REST API
  • 60. Fully decoupled Drupal Subscribe E-mail Submit HTTP request HTTP response Lorem ipsum dolor sit amet, consectetuer adipiscing. Lorem ipsum dolor sit amet, consectetuer adipiscing. Success! Here are others that might interest you: Lorem ipsum dolor sit amet, consectetuer adipiscing. Drupal JavaScript framework REST API
  • 61. Progressively decoupled Drupal Subscribe E-mail Submit HTTP request HTTP response Lorem ipsum dolor sit amet, consectetuer adipiscing. Lorem ipsum dolor sit amet, consectetuer adipiscing. Success! Here are others that might interest you: Lorem ipsum dolor sit amet, consectetuer adipiscing. Drupal REST API Drupal front end JS framework
  • 62. ©2016 Acquia Inc. Risks of fully decoupled Drupal – Additional point of failure (REST API, other hosting) – No cross-site scripting protection or input sanitization – No in-place, in-context editing or administration – No layout and display management – No previewable content workflow – No modules affecting the front end – No system notifications (errors, messages) – No BigPipe progressive loading or cache tags – No accessible markup or user experience benefits
  • 63. ©2016 Acquia Inc. Rewards of progressively decoupled Drupal – No additional point of failure (REST API, other hosting) – Cross-site scripting protection and input sanitization – In-place, in-context editing and administration – Layout and display management – Previewable content workflow – Modules affecting the front end – System notifications (errors, messages) – BigPipe progressive loading and cache tags – Accessible markup and user experience benefits
  • 64. ©2016 Acquia Inc. Epilogue: Drupal’s API- first future
  • 65. Think again about where Drupal is now
  • 66. How can we make Drupal more API-first?
  • 67. How can we benefit from a native user experience and editorial capabilities?
  • 68. Should Drupal be decoupled out of the box?
  • 69. Should all CMSes be decoupled out of the box?
  • 70. More information ➔ API-first initiative ◆ www.drupal.org/node/2757967 ➔ API-first initiative at DrupalCon Dublin ◆ events.drupal.org/dublin2016/sessions/api-first-initiative ➔ API-first initiative at DrupalCon Baltimore ◆ events.drupal.org/baltimore2017/sessions/api-first-initiative
  • 71. ©2016 Acquia Inc. Thank you! Preston So (@prestonso) drupal.org/u/prestonso preston.so@acquia.com Learn more about Acquia Labs: acquia.com/resources/acquia-labs