20.2. Zend_Service_Rest

20.2.1. Введение

Zend_Service_Rest является базовым клиентом REST для выполнения запросов к любым веб-сервисам, основанным на REST.

Пример 20.1. Основной запрос REST

В нижеследующем коде метод setUri() устанавливает базовый URI к веб-сервису. Затем вызывается метод restGet() для выполнения запроса GET, ему передаются путь и строка запроса (необязательный параметр).

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

try {
    $rest = new Zend_Service_Rest();

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

    // Возвращает объект Zend_HttpClient_Response
    $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>';
}
?>       
[Замечание] Передача

Вы можете передавать правильно сформированную строку запроса (без знака вопроса "?" в начале) методу restGet(), либо передавать ассоциативный массив из пар имя-значение. Независимо от того, какой способ был выбран, имена и значения должны быть закодированы для URL (например, с помощью urlencode()).

Методы restPost() и restPut() используются так же, как и метод restGet(), за тем отличием, что данные в них отправляются через HTTP-методы POST и PUT соответственно.

Метод restDelete() работает с путем в URL, но не имет второго параметра, в котором передаются данные.