Top Banner
Joris Snoek Headless Drupal OpenLucius.nl - Drupal Social Intranet
64

Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Apr 14, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Joris Snoek

Headless Drupal

OpenLucius.nl - Drupal Social Intranet

Page 2: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Wat, Waarom & Hoe in Drupal.

Headless Drupal

Uitdagingen, Code Voorbeelden & Vragen.

Page 3: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless Drupal implementaties

Page 4: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Tonight show Drupal & Node.js + Backbone.js

Page 5: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Weather.com Drupal & Angular

Page 6: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Radio France International Drupal & Symfony 2

Page 7: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Wat is headless?

Page 8: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 9: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Focus deze sessie op JS/HTML - frameworks, niet apps

Page 10: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom headless?

Page 11: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? Onafhankelijke teams, ook zonder Drupal kennis.

Page 12: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? “I love CSS” - No backend developer ever.

Page 13: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? “I love to style Drupal markup” - No frontend developer ever.

Page 14: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 15: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? 100-miljoen-miljard apparaten en schermen.

Page 16: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? 100-miljard-miljoen apps.

Page 17: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 18: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? Makkelijker beheer en onderhoud.

Page 19: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 20: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? Performance.

Page 21: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? Toekomstgericht

Page 22: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 23: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Waarom Headless Drupal? ‘Applicatie experience’.

Page 24: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 25: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless techniek

Page 26: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 27: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Hoe headless in Drupal 7 & 8?

Page 28: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Hoe Headless | Drupal 7 - Modules: Services, RestWS, Restful - Custom endpoint gefaciliteerd door Service module

Page 29: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Waarom Headless?

OpenLucius.com - Drupal Social Intranet

Hoe Headless | Drupal 8 - REST API in core & Services module. - REST UI & Views - Custom endpoints middels core REST API + services.

Page 30: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - ‘Building an API is not enough’.

Page 31: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - SEO

Page 32: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Meertaligheid: Localization & Content translation

Page 33: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Formulieren

Page 34: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Menu’s

Page 35: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Layout control

Page 36: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Foreign authorisation

Page 37: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Contact formulier

Page 38: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Search

Page 39: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Search, Pager, Views exposed filters, Meta tags, OpenGraph, - Google Analytics (bv events), Preview, Edit in place, Toolbar, - Image styles, Block management, Paragraphs, XML Sitemap, etc etc - Site name, logo & site slogan

⁃ Logging en error reporting

Page 40: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Veel lagen, meer complexiteit

Page 41: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Drupal core & Services module: Hoeveelheid data en traffic per endpoint.

Page 42: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Hosting

Page 43: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless uitdagingen - Budget

Page 44: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Headless? Coupled? Decoupled?

Progressive Decoupled? Monolytic?

Page 45: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 46: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Progressive decoupled - Criteria document and comparison matrix

Page 47: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Go for headless?

Page 48: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Go for headless? - Meerdere onafhankelijke development teams? - Rigide front-end requirements? - Multi channel publishing?

Page 49: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Go for headless? - Mate van Drupal ervaring bij front-enders? - Data van verschillende bronnen? - Dev team site builders of API devs?

Page 50: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen
Page 51: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

API design & tools

Page 52: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

API Design - REST: Representational State Transfer - Roy Fielding - “Architectural Styles and the Design of Network-based Software Architectures”

Page 53: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

API Design - Richardson Maturity Model: - Level 0: the swamp of POX (single endpoint: /content?type=article) - Level 1: Resources (multiple endpoints: /articles, /articles/1, and /articles/1/delete) - Level 2: HTTP verbs (endpoint per content type faciliteert GET, POST, DELETE, PATCH) = RESTful

Page 54: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

API Design - Object schema bepalen - Repeatable proporties en field names - Juiste data types: b.v. integers voor nummers i.p.v strings

Page 55: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

API Design - API versioning - in URL of in accept header - Services module kan faciliteren

Page 56: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Overige API technieken - GraphQL, HAL, Siren, Collection+JSON, Uber - HAL, JSON-LD (+ Hydra), Mason

Page 57: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

API tools - swagger.io (Designing, traffic inspector, documentation) - Postman Chrome plugin (Testing) - Apiary (Designing)

Page 58: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

API tools - API Blueprint (Designing) - Jsonapi.org (Designing) - Dredd (Testing) - Aglio (Documentation)

Page 59: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Voorbeelden

Page 60: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Voorbeeld | Drupal 7 Services of RESTful module: • Standaard endpoints met (te) veel voorgedefinieerd Drupal

style output.

Page 61: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Voorbeeld | Drupal 7 custom endpoints m.b.v. Services: Bepaal geheel zelf de output m.b.v. custom queries ==> Zie voorbeeld code

Page 62: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Voorbeeld - Drupal 8 core + REST UI module

Page 63: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Voorbeeld|Drupal 8 custom endpoints: http://enzolutions.com/articles/2014/12/16/how-to-create-a-rest-resource-in-drupal-8/

Page 64: Headless Drupal - Wat, Waarom, Hoe & Uitdagingen

Vragen?