SlideShare a Scribd company logo
Decoupled frontend with Drupal 8
e OpenUI 5
DrupalDay 2017 - Rome, 03/03/2017
Whaaat?
Whaaat?
About me
Name: Donato Rotunno
Age: 42
Birthplace: Lucania (Basilicata), Italy
Profession: Frontend developer and Web Content Accessibility passionate
Company: Liip AG, Fribourg, Switzerland
Github: ralf57
Twitter: ralf57
About my nickname
The Greatest American
Hero,
a.k.a Ralph supermaxieroe
Agenda
Decoupled frontend: why and what?
A quick look at Drupal 8 REST implementation
Discovering OpenUI 5
Demo
Questions
What is a decoupled frontend?
An application which interacts with another
application exposing data via external API
(REST, SOAP, etc)
Why a decoupled frontend?
Fully customizable frontend
Twig templating engine
Easily override default markup
Free to adopt any assets (JS, CSS, Images, etc) management strategy.
Built-in or external tools
Why a decoupled frontend?
Innovation, desire to move on
Better performance
Only expose what you need
(regardless of user permissions)
Implement a completely different
UI pattern
Make the migration to a
“Drupal as Content Repository”
easier
Traditional Drupal setup
Frontend
Backend
+
Editor
API-driven Drupal setup
Frontend
Backend
+
Editor
REST
API
API-driven Drupal setup + decoupled Editor
Frontend
Backend
(content
repository)
REST API
Editor
The attack of API-first CMSes
The attack of API-first CMSes
● Different targets: from newbie (Wix) to developer
(Contentful)
● Offered as SaaS, with subscription-based business
model
● Pros: low setup costs, SDK, rapid Frontend
scaffolding
● Cons: data in the Cloud, technology (service)
lock-in
RESTful API’s with Drupal 8
https://www.drupal.org/docs/8/core/modules/rest/overview
● Already possible in Drupal 7 via Via RESTful Web
Services module
● In Drupal 8 it builds on top of Symfony
Components
● In D8 core (although better use Views to expose
resources)
RESTful features
Multiple formats (JSON, XML, HAL+JSON, CSV)
Multiple Authentication mechanisms (Cookie, OAuth, OAuth 2.0 Token Bearer,
HTTP Basic Authentication)
Most HTTP verbs supported, except PUT
(De)Serialization
Useful modules and tools
https://www.drupal.org/project/rest_api_doc
Automatically generate API docs
https://www.getpostman.com/
Develop and Test your API
https://www.drupal.org/project/devel
Especially “Devel generate” in order to add some (dummy) content
An introduction to OpenUI 5
http://openui5.org
Yet Another Framework?
http://todomvc.com/
[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5
Motivations (my guess)
● Hey, it’s 2015!
● Many products are being moving to the cloud
● The need to provide a solid User Experience, regardless of the device
● Keep the technology lock-in
OpenUI 5 key features
● MVC pattern implementation
● Built-in support for several data model types (JSON, XML, OData)
● Extensible
● Comes with 200 UI controls
● Responsive
● Very good Accessibility support
● (almost)Fully tested and good support for custom extensions testing
● Backed by SAP
OpenUI 5 key features
● No EcmaScript 6
● Uses jQuery
● Themeable via Less pre-processing
● Support for different view formats (XML, HTML, Javascript, JSON)
● Free and open source, hackable on Github
Love at first “define”
sap.ui.define([
'jquery.sap.global',
'sap/ui/core/Element',
'sap/ui/core/library'
], function(jQuery, Element, library) {
"use strict";
………
});
https://raw.githubusercontent.com/SAP/openui5/master/src/sap.ui.core/src/sap/ui/core/search/SearchProvider.js
Love at first “define”
define([
'./cart',
'./inventory'
], function(cart, inventory) {
….
});
http://requirejs.org/docs/api.html#define
VS
Showtime!!!
Questions?
Thank you all!
DrupalDay 2017 - Rome, 03/03/2017

More Related Content

What's hot (20)

PPTX
#D8CX: Upgrade your modules to Drupal 8 (Part 1 and 2)
Konstantin Komelin
 
PDF
Digital Signage for YMCA and the Drupal role
Dmitry Drozdik
 
PDF
The Workflow Methodology to Train Your Team on Drupal 8
Acquia
 
PPTX
Drupal 8 Vocabulary Lesson
Mediacurrent
 
PDF
10 New Things You Can Do with Drupal 8 Out-of-the-Box
Suzanne Dergacheva
 
PDF
Yet Another Drupal Development/Deployment Presentation
digital006
 
PPTX
Drupal core indeas - Andy Postnikov
DrupalCamp Kyiv
 
PDF
Drupal Best Practices
Mukesh Agarwal
 
PDF
Best Practice Site Architecture in Drupal 8
Pantheon
 
PDF
The OpenEuropa Initiative
Nuvole
 
PDF
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
DrupalCamp Kyiv
 
PPTX
Dimpact wim bumpy road of building reusable platform for municipalities from...
DrupalCamp Kyiv
 
PDF
What is Drupal? An Introduction to Drupal 8
Suzanne Dergacheva
 
PDF
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
Wong Hoi Sing Edison
 
PDF
Drupal
Ruben Teijeiro
 
PDF
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
DrupalDay
 
PDF
Continuous Integration Is for Teams: Moving past buzzword driven development
Pantheon
 
ODP
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Chipway
 
PDF
Drupal 8: frontend development
sparkfabrik
 
#D8CX: Upgrade your modules to Drupal 8 (Part 1 and 2)
Konstantin Komelin
 
Digital Signage for YMCA and the Drupal role
Dmitry Drozdik
 
The Workflow Methodology to Train Your Team on Drupal 8
Acquia
 
Drupal 8 Vocabulary Lesson
Mediacurrent
 
10 New Things You Can Do with Drupal 8 Out-of-the-Box
Suzanne Dergacheva
 
Yet Another Drupal Development/Deployment Presentation
digital006
 
Drupal core indeas - Andy Postnikov
DrupalCamp Kyiv
 
Drupal Best Practices
Mukesh Agarwal
 
Best Practice Site Architecture in Drupal 8
Pantheon
 
The OpenEuropa Initiative
Nuvole
 
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
DrupalCamp Kyiv
 
Dimpact wim bumpy road of building reusable platform for municipalities from...
DrupalCamp Kyiv
 
What is Drupal? An Introduction to Drupal 8
Suzanne Dergacheva
 
[HKDUG] #20151017 - BarCamp 2015 - Drupal 8 is Coming! Are You Ready?
Wong Hoi Sing Edison
 
[drupalday2017 - KEYNOTE] - Saving the world one Open Source project at a time
DrupalDay
 
Continuous Integration Is for Teams: Moving past buzzword driven development
Pantheon
 
Conference Migrate to Drupal 8 by Leon Cros at Drupal Developer Days 2015 in ...
Chipway
 
Drupal 8: frontend development
sparkfabrik
 

Viewers also liked (20)

PDF
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
DrupalDay
 
PDF
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
DrupalDay
 
PDF
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
DrupalDay
 
PDF
[drupalday2017] - Drupal 4 Stakeholders
DrupalDay
 
PDF
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
DrupalDay
 
PDF
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di Sapienza
DrupalDay
 
PDF
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
DrupalDay
 
PDF
[drupalday2017] - Async navigation with a lightweight ES6 framework
DrupalDay
 
PDF
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
DrupalDay
 
PDF
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
DrupalDay
 
PDF
[drupalday2017] - Quando l’informazione è un servizio
DrupalDay
 
PDF
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8
DrupalDay
 
PDF
[drupalday2017] - REST in pieces
DrupalDay
 
PDF
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
 
PDF
Tooling per il tema in Drupal 8
DrupalDay
 
PDF
Once you go cloud you never go down
DrupalDay
 
PDF
Your Entity, Your Code
DrupalDay
 
PDF
Da X a Drupal 8, migra tutto e vivi sereno
DrupalDay
 
PDF
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
DrupalDay
 
PDF
Come progettare e realizzare una distribuzione in Drupal 8
DrupalDay
 
[drupalday 2017] - Accessibilità Web: Finalità, metodologie e strumenti.
DrupalDay
 
[drupalday2017] - Open Data con Drupal nella PA: considerazioni su licensing ...
DrupalDay
 
[drupalday2017] - Cloud e integrazione per la PA: la sfida dell'Open Source t...
DrupalDay
 
[drupalday2017] - Drupal 4 Stakeholders
DrupalDay
 
[drupalday2017] - Drupal come frontend che consuma servizi: HTTP Client Manager
DrupalDay
 
[drupalday2017] - DRUPAL per la PA: il modello della Trasparenza di Sapienza
DrupalDay
 
[drupalday2017] - Drupal & Patternlab: un nuovo approccio al theming
DrupalDay
 
[drupalday2017] - Async navigation with a lightweight ES6 framework
DrupalDay
 
[drupalday2017] - Contenuti educativi digitali aperti, creare contenuti e dis...
DrupalDay
 
[drupalday2017] - Venezia & Drupal. Venezia è Drupal!
DrupalDay
 
[drupalday2017] - Quando l’informazione è un servizio
DrupalDay
 
[drupalday2017] - Cosa significa convertire un modulo da D7 a D8
DrupalDay
 
[drupalday2017] - REST in pieces
DrupalDay
 
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
 
Tooling per il tema in Drupal 8
DrupalDay
 
Once you go cloud you never go down
DrupalDay
 
Your Entity, Your Code
DrupalDay
 
Da X a Drupal 8, migra tutto e vivi sereno
DrupalDay
 
Mantenere una distribuzione Drupal attraverso test coverage: Paddle case study
DrupalDay
 
Come progettare e realizzare una distribuzione in Drupal 8
DrupalDay
 
Ad

Similar to [drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5 (20)

PDF
Decoupled Drupal: What This Means for Developers
Acquia
 
PDF
Decoupled drupal DcRuhr
Ahmad Hassan
 
PDF
Applied progressive decoupling weather.com, angular, and drupal
Acquia
 
PDF
Headless Drupal 8
Ruben Teijeiro
 
PDF
The Decoupled CMS in Financial Services
Open Source Strategy Forum
 
PPTX
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
DrupalCamp Kyiv
 
PPTX
Decoupling Edutopia.org
dsayswhat
 
PDF
RESTful with Drupal - in-s and out-s
Kalin Chernev
 
PPTX
Decoupled drupal
Ahmad Hassan
 
PDF
Creating a custom API for a headless Drupal
Exove
 
PDF
How to Successfully Implement Headless Drupal
Acquia
 
PDF
Drupal for Mobile
littleMAS
 
PDF
Headless Drupal: A modern approach to (micro)services and APIs
sparkfabrik
 
PPTX
Drupal as a data server
Jay Friendly
 
PDF
Across the spectrum different approaches to progressively decoupled drupal (...
Acquia
 
PDF
Linked Data Publishing with Drupal (SWIB13 workshop)
Joachim Neubert
 
PDF
Introduction to drupal
Pedro Cambra
 
PDF
Using VueJS in front of Drupal 8
Brian Ward
 
PDF
Learn Drupal 8 Render Pipeline
Zyxware Technologies
 
PDF
What is Headless and headless 101 at Acquia.pdf
Allie Jones
 
Decoupled Drupal: What This Means for Developers
Acquia
 
Decoupled drupal DcRuhr
Ahmad Hassan
 
Applied progressive decoupling weather.com, angular, and drupal
Acquia
 
Headless Drupal 8
Ruben Teijeiro
 
The Decoupled CMS in Financial Services
Open Source Strategy Forum
 
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
DrupalCamp Kyiv
 
Decoupling Edutopia.org
dsayswhat
 
RESTful with Drupal - in-s and out-s
Kalin Chernev
 
Decoupled drupal
Ahmad Hassan
 
Creating a custom API for a headless Drupal
Exove
 
How to Successfully Implement Headless Drupal
Acquia
 
Drupal for Mobile
littleMAS
 
Headless Drupal: A modern approach to (micro)services and APIs
sparkfabrik
 
Drupal as a data server
Jay Friendly
 
Across the spectrum different approaches to progressively decoupled drupal (...
Acquia
 
Linked Data Publishing with Drupal (SWIB13 workshop)
Joachim Neubert
 
Introduction to drupal
Pedro Cambra
 
Using VueJS in front of Drupal 8
Brian Ward
 
Learn Drupal 8 Render Pipeline
Zyxware Technologies
 
What is Headless and headless 101 at Acquia.pdf
Allie Jones
 
Ad

Recently uploaded (20)

PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
“Computer Vision at Sea: Automated Fish Tracking for Sustainable Fishing,” a ...
Edge AI and Vision Alliance
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
AI Agents in the Cloud: The Rise of Agentic Cloud Architecture
Lilly Gracia
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 

[drupalday2017] - Decoupled frontend con Drupal 8 e OpenUI 5

  • 1. Decoupled frontend with Drupal 8 e OpenUI 5 DrupalDay 2017 - Rome, 03/03/2017
  • 4. About me Name: Donato Rotunno Age: 42 Birthplace: Lucania (Basilicata), Italy Profession: Frontend developer and Web Content Accessibility passionate Company: Liip AG, Fribourg, Switzerland Github: ralf57 Twitter: ralf57
  • 5. About my nickname The Greatest American Hero, a.k.a Ralph supermaxieroe
  • 6. Agenda Decoupled frontend: why and what? A quick look at Drupal 8 REST implementation Discovering OpenUI 5 Demo Questions
  • 7. What is a decoupled frontend? An application which interacts with another application exposing data via external API (REST, SOAP, etc)
  • 8. Why a decoupled frontend?
  • 9. Fully customizable frontend Twig templating engine Easily override default markup Free to adopt any assets (JS, CSS, Images, etc) management strategy. Built-in or external tools
  • 10. Why a decoupled frontend?
  • 13. Only expose what you need (regardless of user permissions)
  • 14. Implement a completely different UI pattern
  • 15. Make the migration to a “Drupal as Content Repository” easier
  • 18. API-driven Drupal setup + decoupled Editor Frontend Backend (content repository) REST API Editor
  • 19. The attack of API-first CMSes
  • 20. The attack of API-first CMSes ● Different targets: from newbie (Wix) to developer (Contentful) ● Offered as SaaS, with subscription-based business model ● Pros: low setup costs, SDK, rapid Frontend scaffolding ● Cons: data in the Cloud, technology (service) lock-in
  • 21. RESTful API’s with Drupal 8 https://www.drupal.org/docs/8/core/modules/rest/overview
  • 22. ● Already possible in Drupal 7 via Via RESTful Web Services module ● In Drupal 8 it builds on top of Symfony Components ● In D8 core (although better use Views to expose resources)
  • 23. RESTful features Multiple formats (JSON, XML, HAL+JSON, CSV) Multiple Authentication mechanisms (Cookie, OAuth, OAuth 2.0 Token Bearer, HTTP Basic Authentication) Most HTTP verbs supported, except PUT (De)Serialization
  • 24. Useful modules and tools https://www.drupal.org/project/rest_api_doc Automatically generate API docs https://www.getpostman.com/ Develop and Test your API https://www.drupal.org/project/devel Especially “Devel generate” in order to add some (dummy) content
  • 25. An introduction to OpenUI 5 http://openui5.org
  • 28. Motivations (my guess) ● Hey, it’s 2015! ● Many products are being moving to the cloud ● The need to provide a solid User Experience, regardless of the device ● Keep the technology lock-in
  • 29. OpenUI 5 key features ● MVC pattern implementation ● Built-in support for several data model types (JSON, XML, OData) ● Extensible ● Comes with 200 UI controls ● Responsive ● Very good Accessibility support ● (almost)Fully tested and good support for custom extensions testing ● Backed by SAP
  • 30. OpenUI 5 key features ● No EcmaScript 6 ● Uses jQuery ● Themeable via Less pre-processing ● Support for different view formats (XML, HTML, Javascript, JSON) ● Free and open source, hackable on Github
  • 31. Love at first “define” sap.ui.define([ 'jquery.sap.global', 'sap/ui/core/Element', 'sap/ui/core/library' ], function(jQuery, Element, library) { "use strict"; ……… }); https://raw.githubusercontent.com/SAP/openui5/master/src/sap.ui.core/src/sap/ui/core/search/SearchProvider.js
  • 32. Love at first “define” define([ './cart', './inventory' ], function(cart, inventory) { …. }); http://requirejs.org/docs/api.html#define
  • 33. VS
  • 36. Thank you all! DrupalDay 2017 - Rome, 03/03/2017