1. Accueil
  2. Articles
  3. Développement

Drupal 8 & API : ouvrez le dialogue avec d’autres services

Partager :

Drupal 8 est l’un des gestionnaires de contenus le plus en avance en terme de mise en relation avec d’autres services. Concrètement, il permet de fournir à d’autres sites ou applications des contenus à travers un webservice REST. Pour simplifier, il est possible de fournir une adresse/url bien précise, à des services tiers, afin qu’ils puissent récupérer tous les éléments qu’ils ont besoin (titre, contenu, image d’illustration, etc.) pour afficher notre contenus chez eux.

Le plus souvent, la communication entre services s’effectue à travers des formats bien spécifiques (JSON ou encore XML) à la place d’une communication plus standard entre un site et un utilisateur (page au format HTML).

Dans les extensions Drupal, vous pouvez activer : 

Vous pouvez alors accéder à la page : http://example.com/admin/config/services/rest

Cette dernière vous permet de gérer les contenus qui seront partagés avec les autres services. Par exemple, pour le chemin “node/{id}” vous pouvez activer puis éditer les paramètres de ce chemin pour autoriser la lecture d’un contenu en cochant GET, JSON et cookie (pour limiter l’accès aux utilisateurs connectés).

Vous pourrez alors vous rendre sur http://example.com/node/1?_format=json (changez le chiffre par l’id que vous souhaitez visualiser) et vous verrez votre contenu présenté dans son format JSON et exploitable par un service externe. Pour plus d’exemples, n’hésitez pas à consulter la documentation de drupal, notamment :

  • https://www.drupal.org/docs/8/api/restful-web-services-api/restful-web-services-api-overview
  • https://www.drupal.org/docs/8/core/modules/rest/using-other-authentication-protocols

 

Une autre solution pour créer facilement des points d’entrées pour d’autres services : utiliser le module Views (intégré par défaut dans drupal 8). Vous pourrez alors créer votre propre JSON sans ligne de code.

Voici les étapes :

  1. Créez une nouvelle vue en vous rendant dans “Structure” puis “Views” puis cliquez sur “Add new view”
  2. Complétez le formulaire en indiquant un nom pour votre vue (View name), dans la section “Show” sélectionnez “Content” et “Article”. Dans la Section “REST export settings”, cochez “Provide a REST export” et indiquez un chemin d’accès qui permettra par la suite au service externe d’accéder au contenu. Cliquez sur “Save and edit” pour valider la création de la vue.
  3. Sélectionnez maintenant le format d’affichage du contenu depuis la section “Format”. Sur la ligne “Format : Serializer | Settings”, cliquez sur “Settings”. Puis cocher la case “json” depuis le popup qui vient de s’ouvrir.
  4. Après sauvegarde des nouveaux paramètres et de la vue en question, vous pourrez vous rendre sur le chemin d’accès que vous avez indiquez à l’étape 2 et vous visualiserez vos contenus de type “Article” au format JSON.