Configurer l’authentification de base avec le module HTTP Basic Authentication
Authentification pour les opérations CRUD avec JSON:API
Lorsqu’on interagit avec JSON:API, des outils comme Postman ou cURL peuvent être utilisés pour envoyer des requêtes. Par défaut, les requêtes effectuées via ces outils sont considérées comme provenant d’un utilisateur « anonyme », car elles ne gèrent pas intrinsèquement l’authentification utilisateur. En conséquence, l’accès à certaines ressources peut être restreint selon les permissions configurées pour les utilisateurs anonymes sur votre site Drupal.
Cependant, si votre objectif est d’effectuer des opérations de création, mise à jour ou suppression (CRUD) via JSON:API, l’accès anonyme seul est insuffisant. Ces opérations nécessitent un accès authentifié. Drupal supporte plusieurs méthodes d’authentification, qui peuvent être activées via divers modules contrib et modules cœur.
Une des méthodes les plus couramment utilisées est l’authentification HTTP Basic, incluse dans le cœur de Drupal. Pour des cas d’usage plus avancés, des modules comme Drupal REST & JSON API Authentication offrent des capacités d’authentification étendues et des options de personnalisation, permettant d’adapter le modèle de sécurité aux besoins spécifiques de votre application.
Étapes pour effectuer une requête authentifiée
- Pour cet exemple, assurez-vous que toutes les opérations sont activées
- Activez le module HTTP Basic Authentication
- Créez un rôle pour l’utilisateur API
- Attribuez les permissions nécessaires à ce rôle. /admin/people/permissions/api_user
- Pour cet exemple, veillez à donner la permission
*Article* : Créer un contenu
- Créez un utilisateur avec la permission Utilisateur API. /admin/people/create
- Configurez l’authentification dans Postman. Utilisez le compte nouvellement créé
- Ajoutez l’en-tête Content-Type
application/vnd.api+json
- Mettez à jour le corps :
{ "data": { "type": "node--article", "attributes": { "title": "Cette page est créée via JSON:API", "body": { "value": "texte du corps", "format": "plain_text" } } } }
- Envoyez la requête et observez la réponse. Si le code de statut est 201, vous avez réussi à effectuer une requête authentifiée vers votre JSON:API et créé un nœud de type article
JSON:API est une spécification puissante et standardisée qui simplifie le processus de création d’APIs dans Drupal. Introduit comme module cœur dans Drupal 8 et versions ultérieures, il permet aux développeurs d’exposer contenu et données via une API cohérente et bien définie sans nécessiter un développement personnalisé étendu.
En activant simplement le module JSON:API, vous accédez immédiatement à une API structurée conforme à la spécification JSON:API. Cela permet une interaction aisée avec le contenu de votre site Drupal grâce à des schémas d’URL intuitifs et des formats de réponse prévisibles — idéal pour les applications frontend, les intégrations et les architectures découplées.
Pour découvrir des fonctionnalités plus avancées et les meilleures pratiques, consultez la Documentation du module Drupal JSON:API. La documentation offre un guide complet sur des fonctionnalités telles que la pagination, le filtrage, le tri, le téléversement de fichiers, et bien plus encore — vous aidant à exploiter pleinement le potentiel de JSON:API dans votre projet Drupal.