13.2. Zend_Service_Rest

13.2.1. Introduction

Zend_Service_Rest est un client REST de base pour effectuer des requêtes sur n'importe quel service Web basé sur REST.

Exemple 13.1. Une requête REST de base

Dans le code suivant, la méthode setUri() définit l'URI de base pour le service Web REST. Ensuite la méthode restGet() est appelé pour effectuer une requête GET sur un chemin donné, avec une chaîne de requête optionnelle.

<?php
require_once 'Zend/Service/Rest.php;

try {
    $rest = new Zend_Service_Rest();

    $rest->setURI('http://exemple.org');

    // Retourne un objet Zend_Http_Response
    $response = $rest->restGet('/services/rest', 'foo=bar&baz=bat');

    if ($response->isSuccessful()) {
        echo $response->getBody();
    } else {
        echo '<p>Une erreur est survenue</p>';
    }
} catch (Zend_Exception $e) {
        echo '<p>Une erreur est survenue (' .$e->getMessage(). ')<p>';
}
?>       
[Note] Note
Vous pouvez passez une chaîne de requête correctement formatté (sans le premier point d'interrogation "?") à restGet(), ou vous pouvez passer un tableau associatif de paires clés/valeurs. Peut importe la méthode que vous choisissez, les noms et les valeurs doivent être encodé en utilisant la fonction urlencode().

L'utilisation de restPost() et restPut() est identique à restGet(), sauf que les données sont envoyée respectivement via HTTP POST ou PUT au lieu de GET.

La méthode restDelete() fonctionne sur un chemin, mais n'a pas de second paramètre dans lequel on pourrait passer des données.