Les requêtes REST en PHP (GET, POST, PUT, DELETE)

Dernière mise à jour : juin 2014

Si vous avez expérimenté la mise en place d’une architecture REST en PHP, vous vous êtes sûrement rendus compte de la difficulté pour effectuer des requêtes de serveur à serveur.

Bien souvent, on veut mettre du REST dans le cas d’une API Web. Côté framework serveur PHP, le choix est limité.

Pour rappel, chaque méthode HTTP a une signification dans le cadre d’une architecture REST.

Ainsi,

GET renvoie des données
POST ajoute des données
PUT modifie des données
DELETE supprime des données

Vous pourrez trouver sur le net un débat très passionnant qui consiste à savoir quelle méthode ajoute et quelle méthode modifie (POST vs. PUT).
Du moment que vous respectez votre choix côté client et serveur, aucun problème.

Si on veut prendre un cas concret d’application :

GET /users/ récupère les utilisateurs
POST /users/ ajoute un utilisateur
PUT /users/1 modifie l’utilisateur dont l’ID est 1
DELETE /users/1 supprime l’utilisateur dont l’ID est 1

On retrouve avec REST le fameux CRUD.

Pour faire ces requêtes en PHP ce n’est pas toujours évident, dès lors que l’on souhaite faire des requêtes un peu plus évoluées (envoi de données, ajout d’en-têtes, certificat SSL…).
C’est pourquoi j’ai créé une petite librairie qui permet d’effectuer ce genre de choses.

Pour l’utiliser vous devez avoir PHP 5.4 minimum ainsi que l’extension cURL activée.

Installation facile avec Composer :

{
    "require": {
        "sylouuu/php-curl": "0.6.*"
    }
}

Puis :

require_once './vendor/autoload.php';

Pour envoyer une requête :

// Création de la requête
$request = new \sylouuu\Curl\Get('http://domain.com');

// Envoi de la requête
$request->send();

echo $request->getResponse(); // La réponse
echo $request->getStatus(); // Le code de retour

En espérant que cela pourra vous servir comme ce fût le cas pour moi.

La documentation complète sur le README du GitHub

Vous aimerez aussi...