13.2. Zend_Service_Rest

13.2.1. Introdução

Zend_Service_Rest é um cliente REST básico para efetuar consultas a qualquer web service baseado em REST.

Exemplo 13.1. Uma requisição REST básica

No código abaixo, o método setUri() seta a URI base para o web service REST. Então, o método restGet() é chamado para executar uma requisição GET para um dado path com uma query string opcional.

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

try {
    $rest = new Zend_Service_Rest();

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

    // Returns a Zend_HttpClient_Response Object
    $response = $rest->restGet('/services/rest', 'foo=bar&baz=bat');

    if ($response->isSuccessful()) {
        echo $response->getBody();
    } else {
        echo '<p>An error occurred</p>';
    }
} catch (Zend_Exception $e) {
        echo '<p>An error occurred (' .$e->getMessage(). ')<p>';
}
?>       
[Nota] Nota
Você pode passar uma query string devidamente formatada (sem o ponto de interrogação "?") para restGet(), ou voçê pode passar um array associativo pares nome-valor. Independentemente do método escolhido, os nomes e valores devem ser URL-encoded (ex: usando urlencode()).

Usar restPost() e restPut() é o mesmo que usar restGet(), mas os dados são enviados via HTTP POST ou PUT, respectivamente, em lugar de GET.

O método restDelete() opera em um path, mas não requer um segundo parâmetro pelo qual os dados podem ser passados.