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

JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017JS digest. Mid-Summer 2017
JS digest. Mid-Summer 2017ElifTech
 
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!Souvik Basu
 
Serverless NodeJS With AWS Lambda
Serverless NodeJS With AWS LambdaServerless NodeJS With AWS Lambda
Serverless NodeJS With AWS LambdaRiza Fahmi
 
JS digest. May 2017
JS digest. May 2017JS digest. May 2017
JS digest. May 2017ElifTech
 
Isomorphic React Applications: Performance And Scalability
Isomorphic React Applications: Performance And ScalabilityIsomorphic React Applications: Performance And Scalability
Isomorphic React Applications: Performance And ScalabilityDenis Izmaylov
 
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)Souvik Basu
 
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 everywhereJose Javier Columbie
 
An Angular developer moving to React
An Angular developer moving to ReactAn Angular developer moving to React
An Angular developer moving to ReactSouvik Basu
 
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-EndJeff Dickey
 
Testing your Single Page Application
Testing your Single Page ApplicationTesting your Single Page Application
Testing your Single Page ApplicationWekoslav Stefanovski
 
.NET Fest 2017. Сергей Калинец. Функциональная веб-разработка на F#
.NET Fest 2017. Сергей Калинец. Функциональная веб-разработка на F#.NET Fest 2017. Сергей Калинец. Функциональная веб-разработка на F#
.NET Fest 2017. Сергей Калинец. Функциональная веб-разработка на F#NETFest
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsRasheed Waraich
 
Modern WebSites with JSF and jQuery
Modern WebSites with JSF and jQueryModern WebSites with JSF and jQuery
Modern WebSites with JSF and jQueryFrank Caputo
 
WebGL: Yesterday, Today, Tomorrow
WebGL: Yesterday, Today, TomorrowWebGL: Yesterday, Today, Tomorrow
WebGL: Yesterday, Today, TomorrowBogdan Gorpynchuk
 

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)

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 2016André Rømcke
 
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...eZ Systems
 
Using WordPress as a Headless CMS
Using WordPress as a Headless CMSUsing WordPress as a Headless CMS
Using WordPress as a Headless CMSAdam Rasheed
 
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. 3adamsilverstein
 
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 WordPressadamsilverstein
 
Azure Static Web Apps
Azure Static Web AppsAzure Static Web Apps
Azure Static Web AppsJen Looper
 
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 PlatformSébastien Morel
 
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 jobTessa Mero
 
Java PaaS Apache Stratos
Java PaaS   Apache StratosJava PaaS   Apache Stratos
Java PaaS Apache StratosChris Haddad
 
Building WebApp with HTML5
Building WebApp with HTML5Building WebApp with HTML5
Building WebApp with HTML5Tien Tran Le Duy
 
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 WayAndré Rømcke
 
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 FunctionsSébastien Levert
 
Web Assembly Big Picture
Web Assembly Big PictureWeb Assembly Big Picture
Web Assembly Big PictureYousif Shalaby
 
API designing with WSO2 API Manager
API designing with WSO2 API ManagerAPI designing with WSO2 API Manager
API designing with WSO2 API ManagerWSO2
 
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.docxodiliagilby
 
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.docxjeffevans62972
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsRemy Sharp
 
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 PortalHimanshu Mendiratta
 

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

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ójsJani Tarvainen
 
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 CMSJani Tarvainen
 
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 CustomizationJani Tarvainen
 
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.jsJani Tarvainen
 
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 GraphQLJani Tarvainen
 
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 HHVMJani Tarvainen
 
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 2016Jani Tarvainen
 
Isomorphic server side rendering with Twig
Isomorphic server side rendering with TwigIsomorphic server side rendering with Twig
Isomorphic server side rendering with TwigJani Tarvainen
 
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 PublishJani 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

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

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