DrupalCon Nashville 2018: Advanced topics in decoupled Drupal

Decoupled Drupal is a rapidly maturing paradigm in Drupal development that reflects the growing vibrancy of available features in the core and contributed spaces. Now that many introductory resources exist for new decoupled Drupal practitioners, this session seeks to give developers the tools they need to build scalable and robust decoupled Drupal architectures for customer implementations and their own personal experiments.

While the core REST API and contributed web services satisfy a large swath of use cases, greater customization is sometimes required through REST resource plugins and other features included in Drupal's core web services. For many developers working with a range of requirements, leeway over core REST output is increasingly important, particularly where reformatted responses and resources unavailable in core are concerned.

Contributed modules such as JSON API and GraphQL are still outside of core's available web services, often due to unresolved issues, particularly in the case of GraphQL mutations. This session will explore some of the common problems that surface when using Drupal on its own and with other data sources, as well as how Drupal handles common requirements of other API solutions, such as API failover, API mocking, and correlation with other API sources.

Here is what we'll cover:

Prologue: A quick refresher on decoupled Drupal

Complex CRUD operations in Drupal 8

Extending core REST with REST plugins

Drupal as a single data source: GraphQL and JSON API

Multiple data sources: Handing non-Drupal API data

Synthesizing non-Drupal and Drupal API data with GraphQL

Proxying data into Drupal via JSON API and JavaScript middleware

Best practices in correlating data from multiple API sources

Common issues in rate limiting and API failure

Caching data in non-Drupal APIs for API failover

Mocking APIs for local application development

Epilogue: The Decoupled Kit, a decoupled Drupal reference

This session is geared toward developers who are already actively working with decoupled Drupal and want to level up their skills in addressing common challenges and issues in decoupled Drupal at scale and in relation to other data sources and APIs. This session assumes a high level of familiarity with Drupal 8's web services ecosystem (including GraphQL and JSON API), web services APIs in general, and PHP and JavaScript (ES6 preferred).

Drupal is a registered trademark of Dries Buytaert.