SlideShare a Scribd company logo
1 of 24
Download to read offline
USING EZ PLATFORM

AS A HEADLESS CMS
JANI TARVAINEN, EZ SYSTEMS
www.ez.nowww.ez.no
Using eZ Platform as a Headless CMS
๏ Web Summer Camp
๏ September 1st, 2016
๏ Jani Tarvainen, eZ Systems
www.ez.nowww.ez.no
What is a headless CMS setup?
๏ A CMS provides the content as a feed
๏ You have a client application that consumes this feed
๏ Web client application
๏ Web server application
๏ Mobile application
www.ez.nowww.ez.no
Some example use cases
๏ An enterprise content repository
๏ Give agencies access to the content feed to create campaign sites
๏ A static site generator to generate documentation shipped with a product
๏ Mobile application that as content such as documentation
www.ez.nowww.ez.no
History of headless content management
๏ From read only to read and write
๏ AJAX+RSS demo from 2005: http://www.nigelcrawley.co.uk/bbc/
๏ REST popularisation, JSON nowadays the most common format
www.ez.nowww.ez.no
State of the use of headless today
๏ The hype is over, now it's popping up where it's appropriate
๏ Plenty of mature options for consuming Content APIs with site generators,
front end tools, content
๏(still) not the standard for new content driven sites
www.ez.nowww.ez.no
Pros for using headless for site creation
๏ You get complete freedom to use whatever tool for the experience
๏ Absolutely no limitations for front end application
๏ Reuse of content across different properties
www.ez.nowww.ez.no
Cons for using headless for site creation
๏ You loose a lot of what people expect from a CMS: Layout management,
๏ Navigation management, Banner management, Template helpers....
๏ Can lead to solving problems that have already been solved, for no
particular good reason.
๏ Feedback forms and other interactive elements still need to be handled
www.ez.nowww.ez.no
What does eZ offer for headless?
๏ A solid, comprehensive and extensible REST API for the content repository
๏ A JavaScript Client library for the REST API
๏ Symfony and Public API for custom APIs
๏ Freedom to choose whatever JavaScript toolchain you want
www.ez.nowww.ez.no
Back end options
๏ Use the built in REST API and extend it
๏ Roll your own with Public API
๏ Public API + Symfony Options
www.ez.nowww.ez.no
Examples of headless eZ Platform
๏ The most common headless eZ application is the eZ Platform admin
๏ We'll take a a look at how to turn a static site into a simple decoupled
interface for the bike ride demo
www.ez.nowww.ez.no
Time to get our hands dirty
๏ We'll convert the bike ride tutorial static template
๏ Using Vue.js 2.0 (RC3)
๏ Using eZ CAPI
www.ez.nowww.ez.no
Time to get our hands dirty
๏ Six steps:
๏ 1. Ground zero, static HTML
๏ 2. Add Vue.js basics
๏ 3. Login to eZ
๏ 4. List content
๏ 5. Add simple form
๏ 6. Merge as hybrid
www.ez.nowww.ez.no
Time to get our hands dirty
๏ First of all
๏ git pull
๏ ./installation/reset.sh
www.ez.nowww.ez.no
Step 1: Static HTML
๏ What we have:
๏ A static HTML version here: http://headless.websc/static/index.html
๏ A readily configured eZ installation: http://headless.websc/ez
๏ Completed: git checkout step-1
www.ez.nowww.ez.no
Step 2: Adding Vue.js basics
๏ Load library and app scripts
๏ Create app
๏ Define app container and template
๏ Help: http://vuejs.org/guide/
๏ Completed: git checkout step-2
www.ez.nowww.ez.no
Step 3: Add CAPI and login
๏ Add CAPI script
๏ Add constructor
๏ Log in to eZ
๏ Help: https://doc.ez.no/display/DEVELOPER/Using+the+JavaScript+REST+API
+Client
๏ Completed: git checkout step-3
www.ez.nowww.ez.no
Step 4: Load content using CAPI and simplify values
๏ Do content query
๏ Manage complex output values to ensure appropriate display
๏ Help:
๏ https://github.com/ezsystems/ezpublish-kernel/tree/v6.5.0/eZ/Publish/
Core/REST/Server/Input/Parser/Criterion
๏ http://ezsystems.github.io/javascript-rest-client/classes/
ContentService.html
๏Completed: git checkout step-4
www.ez.nowww.ez.no
Step 5: Add a simple form to create new rides
๏ Add form and set action
๏ Add action to create content using CAPI
๏ Refresh view after creation
๏ Help: http://ezsystems.github.io/javascript-rest-client/classes/
ContentService.html
๏Completed: git checkout step-5
www.ez.nowww.ez.no
Step 6: Merge into a hybrid
๏ Define layout matching for root
๏ Create Twig template
๏ Copy template and add some backend
๏ Completed: git checkout step-6
www.ez.nowww.ez.no
Conclusion
๏ Going headless is no silver bullet
๏ The CAPI abstracts the default backend
๏ It's very generic and not the best for public facing reads
๏ Hybrid approach is probably the most practical
๏ Sites with dynamic snippets
๏ Apps, etc. using content via API
www.ez.nowww.ez.no
Bonus: An alternative API with GraphQL
๏ GraphQL is similar to what REST is
๏ A high level transport layer with basic query format
๏ It is more defined and exchangeable than different REST APIs
๏ Has methods for read and writes (mutations)
www.ez.nowww.ez.no
Bonus: An alternative API with GraphQL
๏ eZ Platform and Studio currently do not have support for GraphQL
๏ You can work with Symfony Bundles and the eZ Public API to create a
GraphQL API without writing it all
๏ Leverages the awesome Youshido GraphQL Bundle
๏ GraphiQL Client: http://headless.websc/static/graphiql.html
๏ Example: git checkout step-7
www.ez.nowww.ez.no
The end
๏ Questions? No?
๏ Thank you.

More Related Content

What's hot

North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
Sébastien Levert
 
The Thick Front-End
The Thick Front-EndThe Thick Front-End
The Thick Front-End
Jeff Dickey
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
Rasheed Waraich
 

What's hot (19)

JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017
 
Super tools to boost productivity in React dev env!
Super tools to boost productivity in React dev env!Super tools to boost productivity in React dev env!
Super tools to boost productivity in React dev env!
 
Blazor v1.1
Blazor v1.1Blazor v1.1
Blazor v1.1
 
Serverless NodeJS With AWS Lambda
Serverless NodeJS With AWS LambdaServerless NodeJS With AWS Lambda
Serverless NodeJS With AWS Lambda
 
JS digest. May 2017
JS digest. May 2017JS digest. May 2017
JS digest. May 2017
 
Node @ flipkart
Node @ flipkartNode @ flipkart
Node @ flipkart
 
Isomorphic React Applications: Performance And Scalability
Isomorphic React Applications: Performance And ScalabilityIsomorphic React Applications: Performance And Scalability
Isomorphic React Applications: Performance And Scalability
 
React in production (react global summit 2021)
React in production (react global summit 2021)React in production (react global summit 2021)
React in production (react global summit 2021)
 
MAUI Blazor - One App that runs everywhere
MAUI Blazor - One App that runs everywhereMAUI Blazor - One App that runs everywhere
MAUI Blazor - One App that runs everywhere
 
An Angular developer moving to React
An Angular developer moving to ReactAn Angular developer moving to React
An Angular developer moving to React
 
Blazor
BlazorBlazor
Blazor
 
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
 
The Thick Front-End
The Thick Front-EndThe Thick Front-End
The Thick Front-End
 
Testing your Single Page Application
Testing your Single Page ApplicationTesting your Single Page Application
Testing your Single Page Application
 
.NET Fest 2017. Сергей Калинец. Функциональная веб-разработка на F#
.NET Fest 2017. Сергей Калинец. Функциональная веб-разработка на F#.NET Fest 2017. Сергей Калинец. Функциональная веб-разработка на F#
.NET Fest 2017. Сергей Калинец. Функциональная веб-разработка на F#
 
Blazor
BlazorBlazor
Blazor
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
 
Modern WebSites with JSF and jQuery
Modern WebSites with JSF and jQueryModern WebSites with JSF and jQuery
Modern WebSites with JSF and jQuery
 
WebGL: Yesterday, Today, Tomorrow
WebGL: Yesterday, Today, TomorrowWebGL: Yesterday, Today, Tomorrow
WebGL: Yesterday, Today, Tomorrow
 

Similar to Using eZ Platform as a Headless CMS (with Vue.js)

SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure FunctionsSharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
Sébastien Levert
 
www.free-ebooks-download.orgwww.free-ebooks-download.o.docx
www.free-ebooks-download.orgwww.free-ebooks-download.o.docxwww.free-ebooks-download.orgwww.free-ebooks-download.o.docx
www.free-ebooks-download.orgwww.free-ebooks-download.o.docx
odiliagilby
 
www.free-ebooks-download.orgwww.free-ebooks-download.o.docx
www.free-ebooks-download.orgwww.free-ebooks-download.o.docxwww.free-ebooks-download.orgwww.free-ebooks-download.o.docx
www.free-ebooks-download.orgwww.free-ebooks-download.o.docx
jeffevans62972
 

Similar to Using eZ Platform as a Headless CMS (with Vue.js) (20)

Look Towards 2.0 and Beyond - eZ Conference 2016
Look Towards 2.0 and Beyond -   eZ Conference 2016Look Towards 2.0 and Beyond -   eZ Conference 2016
Look Towards 2.0 and Beyond - eZ Conference 2016
 
eZ Platform and eZ Studio: Where We Are, Where We Are Going, and a Look Towar...
eZ Platform and eZ Studio: Where We Are, Where We Are Going, and a Look Towar...eZ Platform and eZ Studio: Where We Are, Where We Are Going, and a Look Towar...
eZ Platform and eZ Studio: Where We Are, Where We Are Going, and a Look Towar...
 
Using WordPress as a Headless CMS
Using WordPress as a Headless CMSUsing WordPress as a Headless CMS
Using WordPress as a Headless CMS
 
Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3Put a little Backbone in your WordPress vs. 3
Put a little Backbone in your WordPress vs. 3
 
WebAssemlby vs JavaScript
WebAssemlby vs JavaScriptWebAssemlby vs JavaScript
WebAssemlby vs JavaScript
 
Put a little Backbone in your WordPress
Put a little Backbone in your WordPressPut a little Backbone in your WordPress
Put a little Backbone in your WordPress
 
Azure Static Web Apps
Azure Static Web AppsAzure Static Web Apps
Azure Static Web Apps
 
Unleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ PlatformUnleash your Symfony projects with eZ Platform
Unleash your Symfony projects with eZ Platform
 
Don't let FaaS do a BaaS job
Don't let FaaS do a BaaS jobDon't let FaaS do a BaaS job
Don't let FaaS do a BaaS job
 
Java PaaS Apache Stratos
Java PaaS   Apache StratosJava PaaS   Apache Stratos
Java PaaS Apache Stratos
 
Building WebApp with HTML5
Building WebApp with HTML5Building WebApp with HTML5
Building WebApp with HTML5
 
Always on! ... or not?
Always on! ... or not?Always on! ... or not?
Always on! ... or not?
 
PHP Benelux 2017 - Caching The Right Way
PHP Benelux 2017 -  Caching The Right WayPHP Benelux 2017 -  Caching The Right Way
PHP Benelux 2017 - Caching The Right Way
 
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure FunctionsSharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big Picture
 
API designing with WSO2 API Manager
API designing with WSO2 API ManagerAPI designing with WSO2 API Manager
API designing with WSO2 API Manager
 
www.free-ebooks-download.orgwww.free-ebooks-download.o.docx
www.free-ebooks-download.orgwww.free-ebooks-download.o.docxwww.free-ebooks-download.orgwww.free-ebooks-download.o.docx
www.free-ebooks-download.orgwww.free-ebooks-download.o.docx
 
www.free-ebooks-download.orgwww.free-ebooks-download.o.docx
www.free-ebooks-download.orgwww.free-ebooks-download.o.docxwww.free-ebooks-download.orgwww.free-ebooks-download.o.docx
www.free-ebooks-download.orgwww.free-ebooks-download.o.docx
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
 
Integrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere PortalIntegrate any Angular Project into WebSphere Portal
Integrate any Angular Project into WebSphere Portal
 

More from Jani Tarvainen

More from Jani Tarvainen (9)

Aggregation APi in Ibexa DXP by Adam Wójs
Aggregation APi in Ibexa DXP by Adam WójsAggregation APi in Ibexa DXP by Adam Wójs
Aggregation APi in Ibexa DXP by Adam Wójs
 
GraphQL APIs is with eZ Platform, a Symfony CMS
GraphQL APIs is with eZ Platform, a Symfony CMSGraphQL APIs is with eZ Platform, a Symfony CMS
GraphQL APIs is with eZ Platform, a Symfony CMS
 
Introduction to eZ Platform v2 UI Customization
Introduction to eZ Platform v2 UI CustomizationIntroduction to eZ Platform v2 UI Customization
Introduction to eZ Platform v2 UI Customization
 
Easy Decoupled Sitebuilding with GraphQL and Next.js
Easy Decoupled Sitebuilding with GraphQL and Next.jsEasy Decoupled Sitebuilding with GraphQL and Next.js
Easy Decoupled Sitebuilding with GraphQL and Next.js
 
Doctrine ORM with eZ Platform REST API and GraphQL
Doctrine ORM with eZ Platform REST API and GraphQLDoctrine ORM with eZ Platform REST API and GraphQL
Doctrine ORM with eZ Platform REST API and GraphQL
 
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVM
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVMPerformance Comparison of PHP 5.6 vs. 7.0 vs HHVM
Performance Comparison of PHP 5.6 vs. 7.0 vs HHVM
 
Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016
 
Isomorphic server side rendering with Twig
Isomorphic server side rendering with TwigIsomorphic server side rendering with Twig
Isomorphic server side rendering with Twig
 
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ PublishContent Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
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, ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Using eZ Platform as a Headless CMS (with Vue.js)

  • 1. USING EZ PLATFORM
 AS A HEADLESS CMS JANI TARVAINEN, EZ SYSTEMS
  • 2. www.ez.nowww.ez.no Using eZ Platform as a Headless CMS ๏ Web Summer Camp ๏ September 1st, 2016 ๏ Jani Tarvainen, eZ Systems
  • 3. www.ez.nowww.ez.no What is a headless CMS setup? ๏ A CMS provides the content as a feed ๏ You have a client application that consumes this feed ๏ Web client application ๏ Web server application ๏ Mobile application
  • 4. www.ez.nowww.ez.no Some example use cases ๏ An enterprise content repository ๏ Give agencies access to the content feed to create campaign sites ๏ A static site generator to generate documentation shipped with a product ๏ Mobile application that as content such as documentation
  • 5. www.ez.nowww.ez.no History of headless content management ๏ From read only to read and write ๏ AJAX+RSS demo from 2005: http://www.nigelcrawley.co.uk/bbc/ ๏ REST popularisation, JSON nowadays the most common format
  • 6. www.ez.nowww.ez.no State of the use of headless today ๏ The hype is over, now it's popping up where it's appropriate ๏ Plenty of mature options for consuming Content APIs with site generators, front end tools, content ๏(still) not the standard for new content driven sites
  • 7. www.ez.nowww.ez.no Pros for using headless for site creation ๏ You get complete freedom to use whatever tool for the experience ๏ Absolutely no limitations for front end application ๏ Reuse of content across different properties
  • 8. www.ez.nowww.ez.no Cons for using headless for site creation ๏ You loose a lot of what people expect from a CMS: Layout management, ๏ Navigation management, Banner management, Template helpers.... ๏ Can lead to solving problems that have already been solved, for no particular good reason. ๏ Feedback forms and other interactive elements still need to be handled
  • 9. www.ez.nowww.ez.no What does eZ offer for headless? ๏ A solid, comprehensive and extensible REST API for the content repository ๏ A JavaScript Client library for the REST API ๏ Symfony and Public API for custom APIs ๏ Freedom to choose whatever JavaScript toolchain you want
  • 10. www.ez.nowww.ez.no Back end options ๏ Use the built in REST API and extend it ๏ Roll your own with Public API ๏ Public API + Symfony Options
  • 11. www.ez.nowww.ez.no Examples of headless eZ Platform ๏ The most common headless eZ application is the eZ Platform admin ๏ We'll take a a look at how to turn a static site into a simple decoupled interface for the bike ride demo
  • 12. www.ez.nowww.ez.no Time to get our hands dirty ๏ We'll convert the bike ride tutorial static template ๏ Using Vue.js 2.0 (RC3) ๏ Using eZ CAPI
  • 13. www.ez.nowww.ez.no Time to get our hands dirty ๏ Six steps: ๏ 1. Ground zero, static HTML ๏ 2. Add Vue.js basics ๏ 3. Login to eZ ๏ 4. List content ๏ 5. Add simple form ๏ 6. Merge as hybrid
  • 14. www.ez.nowww.ez.no Time to get our hands dirty ๏ First of all ๏ git pull ๏ ./installation/reset.sh
  • 15. www.ez.nowww.ez.no Step 1: Static HTML ๏ What we have: ๏ A static HTML version here: http://headless.websc/static/index.html ๏ A readily configured eZ installation: http://headless.websc/ez ๏ Completed: git checkout step-1
  • 16. www.ez.nowww.ez.no Step 2: Adding Vue.js basics ๏ Load library and app scripts ๏ Create app ๏ Define app container and template ๏ Help: http://vuejs.org/guide/ ๏ Completed: git checkout step-2
  • 17. www.ez.nowww.ez.no Step 3: Add CAPI and login ๏ Add CAPI script ๏ Add constructor ๏ Log in to eZ ๏ Help: https://doc.ez.no/display/DEVELOPER/Using+the+JavaScript+REST+API +Client ๏ Completed: git checkout step-3
  • 18. www.ez.nowww.ez.no Step 4: Load content using CAPI and simplify values ๏ Do content query ๏ Manage complex output values to ensure appropriate display ๏ Help: ๏ https://github.com/ezsystems/ezpublish-kernel/tree/v6.5.0/eZ/Publish/ Core/REST/Server/Input/Parser/Criterion ๏ http://ezsystems.github.io/javascript-rest-client/classes/ ContentService.html ๏Completed: git checkout step-4
  • 19. www.ez.nowww.ez.no Step 5: Add a simple form to create new rides ๏ Add form and set action ๏ Add action to create content using CAPI ๏ Refresh view after creation ๏ Help: http://ezsystems.github.io/javascript-rest-client/classes/ ContentService.html ๏Completed: git checkout step-5
  • 20. www.ez.nowww.ez.no Step 6: Merge into a hybrid ๏ Define layout matching for root ๏ Create Twig template ๏ Copy template and add some backend ๏ Completed: git checkout step-6
  • 21. www.ez.nowww.ez.no Conclusion ๏ Going headless is no silver bullet ๏ The CAPI abstracts the default backend ๏ It's very generic and not the best for public facing reads ๏ Hybrid approach is probably the most practical ๏ Sites with dynamic snippets ๏ Apps, etc. using content via API
  • 22. www.ez.nowww.ez.no Bonus: An alternative API with GraphQL ๏ GraphQL is similar to what REST is ๏ A high level transport layer with basic query format ๏ It is more defined and exchangeable than different REST APIs ๏ Has methods for read and writes (mutations)
  • 23. www.ez.nowww.ez.no Bonus: An alternative API with GraphQL ๏ eZ Platform and Studio currently do not have support for GraphQL ๏ You can work with Symfony Bundles and the eZ Public API to create a GraphQL API without writing it all ๏ Leverages the awesome Youshido GraphQL Bundle ๏ GraphiQL Client: http://headless.websc/static/graphiql.html ๏ Example: git checkout step-7