Avec la sortie de Drupal 8, un nouveau moyen de créer des requêtes Web est disponible via Drupal::httpClient . Ceci est simplement un wrapper pour le merveilleux client HTTP Guzzle . Dans cet article, nous verrons comment utiliser la classe Drupal::httpClient pour effectuer des requêtes HTTP dans un module. Ceci est particulièrement utile lorsque vous souhaitez communiquer avec des sites Web externes ou des services Web.

Dans Drupal 7, vous auriez utilisé la fonction drupal_http_request pour envoyer des requêtes HTTP. Cette fonctionnalité existe maintenant dans Drupal::httpClient pour Drupal 8.

Drupal et Guzzle (en bref)

Selon la page du projet Guzzle, "Guzzle est un client HTTP et un framework permettant de créer des clients de services Web RESTful".

Guzzle utilise le PSR-7 comme interface de messagerie HTTP. Le PSR-7 décrit les interfaces courantes pour la représentation des messages HTTP. Cela permet à Guzzle de fonctionner avec n’importe quelle autre bibliothèque utilisant les interfaces de message PSR-7. Vous pouvez vérifier la version de Guzzle que vous utilisez en consultant le fichier composer.lock situé dans le répertoire de votre projet Drupal. Drupal 8.7.6 est livré avec Guzzle 6.3.3 :

{             "name": "guzzlehttp/guzzle",
            "version": "6.3.3",
            "source": {
                "type": "git",
                "url": "https://github.com/guzzle/guzzle.git",
                "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
            },

La documentation de Guzzle est disponible ici.

Drupal::httpClient dans un module

à rédiger

Exemple: authentification de base HTTP

à rédiger

Gestion des exceptions

à rédiger

Client HTTP personnalisé

à rédiger

Ressources