A la découverte de Guzzle : un client http

Guzzle est un client http dévéloppé en php permettant la communication d’une application et de web services restful. Pour rappel, un web service est une technologie qui permet la communication entre applications à distance de manière complètement indépendante et pour ce faire l’utilisation d’un client http tel que Guzzle est indispensable !

Installation de Guzzle

Via composer :

"require": 
{
"guzzlehttp/guzzle":"6.2.*"
}

Utilisation de Guzzle

L’utilisation de Guzzle requiert au moins la version 5.4 de php. Depuis la version 4 de Guzzle, celui-ci n’utilise plus Curl contrairement aux anciennes versions.

 

Méthode Get

La méthode Get permet de récupérer des infos.

Imaginons que nous avons une API REST fournissant la liste des livres disponibles d’une bibliothèque.

use GuzzleHttp\Client;

use GuzzleHttp\EntityBody;

$client = new Client();

$response = $client->get('https://api.bibliotheque/livres');

 

Voyons en détails ce que contient l’objet $response.

getStatusCode() :  Cette méthode renvoie le statut de la requête sous forme de code, voici les plus courants :

  • 200 : tout s’est bien passé.
  • 401 : Si l’application requiert une authentification, ce code indique que l’utilisateur n’est pas identifié
  • 403 : Accès refusé
  • 404 : La ressource est inexistante
  • 500 : Une erreur serveur

 

getBody() :

Cette méthode retourne le corps de la réponse (json, xml, html)

Il existe d’autres méthodes que nous ne verrons pas, je vous laisse les découvrir sur la documentation officielle.

 

Méthode Post

A chaque arrivée de nouveaux livres, nous devons stocker les informations de chaque nouveau livre.

Les infos suivantes caractérisent un livre : titre, auteur, genre, date de publication.

Supposons que ces infos sont saisies via un formulaire, voici le code pour envoyer ces informations à notre web service afin de stocker ce nouveau livre :

 

$responseLivre = $client->request('POST', 'https://api.bibliotheque/livres’,
['form_params' => [
‘titre'                     => "La bête humaine",
‘auteur’                 => "Emile Zola",
‘genre’                  => "Thriller",
‘datePublication’  => "1890",
]]);

 

Voici les codes de retours les plus courants :

  • 201 : ressource créée avec succès.
  • 403 : Accès refusé
  • 500 : Une erreur serveur

 

Méthode Patch 

Cette méthode permet de mettre à jour les informations d’un livre de manière partielle comme par exemple uniquement le titre :

$responseLivre = $client->request('POST', 'https://api.bibliotheque/livres’, ['form_params' => [
‘titre'                     => "la bête humaine",
]]);

 

Méhode Put 

Méthode similaire à Patch mais de manière complète, c’est-à-dire que nous devons envoyer toutes les infos qui caractèrisent un livre :

$responseLivre = $client->request('POST', 'https://api.bibliotheque/livres’,
['form_params' => [
‘titre'                     => "La bête humaine",
‘auteur’                 => "Emile Zola",
‘genre’                  => "Thriller",
‘datePublication’  => "1890",
]]);

 

Méhode Delete 

Méthode qui permet de supprimer un livre :

$responseLivre = $client->request('DELETE', 'https://api.bibliotheque/livres/12’);

 

Conclusion

Guzzle est vraiment simple à utiliser contrairement à Curl qui avait une déclaration assez verbeuse sur plusieurs lignes. Guzzle est vraiment un client http a adopter et à utiliser pour toutes vos applications.

Un commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.