Setting up Drupal for API-first content deliveryfor Drupal 8 , 9 , 10 , and 11

Last updated :  

Introduction

Welcome to the next step in our "Headless Drupal" journey, where we'll explore how to set up Drupal for API-first content delivery. Building on our understanding of decoupled Drupal, this lesson will provide you with a hands-on guide to prepare your Drupal setup as an API-first backend, essential for serving data to any front-end platform.

Prerequisites

Before we start, ensure you have a fresh Drupal installation. If needed, visit Drupal's official installation guide for assistance. We're assuming you have basic familiarity with setting up a web server environment using Apache, MySQL, and PHP (AMP stack).

Configuring Drupal as an API-First Platform

Drupal's powerful API capabilities become central when operating as a headless CMS. We'll configure Drupal using modules like RESTful Web Services, JSON:API, and GraphQL. Let's examine the steps:

Step 1: Enabling the RESTful Web Services Module

The RESTful Web Services module allows standard HTTP methods (GET, POST, PATCH, DELETE) on your Drupal site. Let's enable it:

drush en rest -y

Alternatively, you can enable it via the Drupal admin interface by navigating to the Extend page, searching for "RESTful Web Services," and selecting Enable.

Step 2: Configuration for REST API

Once enabled, you can configure which content types are exposed through REST:

  1. Visit Configuration > Web Services > REST.
  2. Edit the desired endpoint configuration. By default, Drupal provides endpoints for entity types.
  3. Customize the field elements and HTTP methods you wish to support for each endpoint.

This configuration step empowers you to control which parts of your site are available through the API.

Step 3: Installing the JSON:API Module

JSON:API simplifies accessing Drupal's content by auto-generating endpoints for all entity types. Install using Drush or Composer:

composer require drupal/jsonapi

To enable:

drush en jsonapi -y

JSON:API exposes your content as structured, linkable data with minimal configuration, perfect for quick API-first setups.

Step 4: Setting Up Permissions

Proper permissions are vital to control who can access specific API endpoints:

  1. Navigate to People > Permissions.
  2. Adjust permissions under the RESTful Web Services and JSON:API sections. Carefully assign roles that can perform operations such as GET, POST, etc., on your site's content types.

Ensure only trusted roles have write access to prevent unauthorized changes.

Step 5: Testing Your API

Verify your setup by testing API endpoints. Use a tool like Postman or a simple command-line tool like curl:

curl -X GET http://example.com/jsonapi/node/article

This command fetches node data for the 'article' content type. Replace http://example.com with your site's URL.

Conclusion and Teaser for the Next Lesson

By setting up Drupal for API-first content delivery, you have transformed it into a robust backend capable of serving diverse applications. With APIs now at your disposal, you can develop or connect any front-end technology to your clean, structured Drupal data.

In our next lesson, we will explore "Enabling JSON:API and REST Modules", where we'll delve deeper into these powerful tools and their practical configurations. Stay tuned to expand your Drupal capabilities even further!