Blog

08/12/2020

Services Web de Drupal 8

Les sites ont des opportunités vraiment illimitées dans Drupal 8, Ils peuvent aller bien au-delà et échanger facilement des données avec toutes les applications imaginables. Des opportunités spéciales sont apparues grâce aux services Web intégrés, qui figurent parmi les principales améliorations de Drupal 8. Voyons ce que les services Web peuvent vous apporter, comment ils fonctionnent et quelles options spéciales supplémentaires sont ajoutées par d’autres modules Drupal 8.
 

Services Web: Avantages et principes de travail

Le rôle principal des services Web est celui d'un «communicateur» entre un site Web Drupal et une application externe. 
Pouvez-vous imaginer les gains possibles de la sortie du contenu de votre site Web, par exemple, vers une application iOS ou Android ? De plus, les passerelles de paiement, les CRM, les systèmes de gestion des stocks, les montres intelligentes et toutes les autres applications sont prêts à fonctionner avec votre site Web Drupal 8. 

Les services Web aident les sites Web et les applications à trouver un «langage commun» - les données HTML de Drupal sont transformées dans les formats facilement compréhensibles suivants: JSON, XML, HAL + JSON, etc..
Grâce aux services Web, vous pouvez créer une API sur votre site à laquelle d'autres applications peuvent y accéder en demandant à se connecter, et vous pouvez même leur accorder des autorisations.

Services Web dans Drupal 8

Drupal 7 et Drupal 6, avaient un support pour les services Web, mais c'était sous la forme de modules contribués.
Grâce aux Web Services and Context Core Initiative (WSCCI), Drupal 8 intègre des services Web au cœur,cela été grandement amélioré.

Modules Core Drupal 8 pour les services Web

La grande histoire de l'intégration commence donc par l'activation des quatres modules principaux de Drupal 8 responsables des services Web.

 

  • Le module de sérialisation sérialise et désérialise les données de votre site Web Drupal vers et depuis des formats tels que JSON, XML ou HAL + JSON, en les normalisant et en les encodant.
  • Le module HAL ajoute la normalisation des données au moyen du langage d'application hypertexte.
  • Le module Services Web RESTful expose les entités de votre site ou d'autres données dans des points de terminaison d'API particuliers.
  • Le module d'authentification de base HTTP (authentification de base) authentifie le nom d'utilisateur et le mot de passe d'une demande.
     

Quelques modules contribués Drupal 8 pour les services Web

REST UI

Ce module fournit une interface utilisateur pratique pour utiliser les services Web de base. Lorsqu'elle est installée et activée, l’interface apparaît dans Configuration - Services Web - REST.

GraphQL

Voici un module qui permet aux créateurs d'API d'utiliser GraphQL - un langage de requête moderne. C'est une belle alternative à l'architecture REST traditionnellement utilisée pour les API. Les requêtes sont formées par le client précisément pour obtenir tout ce qu'il veut immédiatement. L'obtention de données structurées (y compris celles avec une hiérarchie complexe) est basée sur le schéma.

JSON API

Le module de contribution JSON API offre également une alternative à REST. Il génère un serveur API avec JSON API. Selon le fondateur de Drupal, Dries Buytaert, JSON API et GraphQL pourraient un jour être des modules prometteurs dans le cœur de Drupal.

Services

Le module de services Web le plus populaire de Drupal 7, le module Services a beaucoup changé sur la version drupal 8. Ses avantages incluent d'excellentes options de personnalisation d'API, la prise en charge des entités de configuration, plusieurs formats de réponse, etc.

RELAXed Web Services

Tout en fournissant une API RESTful, ce module offre un support avancé pour les traductions, les pièces jointes, les révisions, les références UUID, la possibilité pour les clients de s'abonner aux notifications de modification en temps réel, etc.

Tous ces modules de base, ainsi que ceux-ci et d'autres modules contribués, font un travail formidable! Cependant, contrairement aux cas simples de configuration d'une API, les plus complexes nécessitent généralement une écriture de code personnalisé.

Quelles que soient vos idées sur l'intégration tierce, vous pouvez contacter nos développeurs Drupal.