Эта библиотека предоставляет классы, реализующие базовые клиенты REST на основе расширения PHP cURL. Доступны два клиентских класса:
RestClient — класс для выполнения вызовов служб RESTful.
RestMultiClient — класс, который расширяет RestClient, предоставляя возможности Curl_multi, позволяющие выполнять несколько параллельных вызовов RESTful.
Кроме того, эта библиотека предоставляет классы, которые оборачивают ответы Curl в объектно-ориентированный интерфейс:
CurlHttpResponse — класс, который инкапсулирует HTTP-ответ, полученный через cURL, в оболочку класса.
CurlMultiHttpResponse — класс, который представляет коллекцию объектов CurlHttpRepsonse, возвращаемых в результате нескольких параллельных вызовов cURL.
Эти классы поддерживают:
Действия HTTP — GET, POST, PUT, DELETE и HEAD.
Базовая аутентификация
SSL с возможностью переключения проверки сертификата SSL для помощи в средах разработки/тестирования.
Требует:
PHP 5.6+
Расширение PHP cURL
PHPUnit 5.7+ (только для модульных тестов)
Эта библиотека разработана для PHP 7.1 и протестирована с помощью Travis CI на:
PHP 5.6.*
PHP 7.0.*
PHP 7.1.*
PHP Ночная сборка
Полная документация библиотеки
Статус сборки Travis CI
Код Охват климатического кода и медицинская информация
Страница упаковщика
Пример использования:
<?php use MikeBrantRestClientLib; /** * Single request using RestClient */ $restClient = new RestClient(); $restClient->setRemoteHost('foo.bar.com') ->setUriBase('/some_service/') ->setUseSsl(true) ->setUseSslTestMode(false) ->setBasicAuthCredentials('username', 'password') ->setHeaders(array('Accept' => 'application/json')); // make requests against service $response = $restClient->get('resource'); $response = $restClient->post('resource', $data); $response = $restClient->put('resource', $data); $response = $restClient->delete('resource'); $response = $restClient->head('resource'); /** * Multiple parallel requests using RestMultiClient */ $restMultiClient = new RestMultiClient(); $restMultiClient->setRemoteHost('foo.bar.com') ->setUriBase('/some_service/') ->setUseSsl(true) ->setUseSslTestMode(false) ->setBasicAuthCredentials('username', 'password') ->setHeaders(array('Accept' => 'application/json')); // make requests against service $responses = $restMultiClient->get(['resource1', 'resource2', ...]); $responses = $restMultiClient->post(['resource1', 'resource2', ...], [$data1, $data2, ...]); $responses = $restMultiClient->put(['resource1', 'resource2', ...], [$data1, $data2, ...]); $responses = $restMultiClient->delete(['resource1', 'resource2', ...]); $responses = $restMultiClient->head(['resource1', 'resource2', ...]);