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
Slide 21
Slide 21 text
RESTful API’s with Drupal 8
https://www.drupal.org/docs/8/core/modules/rest/overview
Slide 22
Slide 22 text
● 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)
Slide 23
Slide 23 text
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
Slide 24
Slide 24 text
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
Slide 25
Slide 25 text
An introduction to OpenUI 5
http://openui5.org
Slide 26
Slide 26 text
Yet Another Framework?
http://todomvc.com/
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
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
Slide 29
Slide 29 text
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
Slide 30
Slide 30 text
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
Slide 31
Slide 31 text
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
Slide 32
Slide 32 text
Love at first “define”
define([
'./cart',
'./inventory'
], function(cart, inventory) {
….
});
http://requirejs.org/docs/api.html#define