Esta biblioteca fornece classes que implementam clientes REST básicos baseados na extensão cURL do PHP. Duas classes de cliente são disponibilizadas:
RestClient – uma classe para executar chamadas de serviço RESTful.
RestMultiClient - uma classe que estende RestClient para fornecer recursos curl_multi para permitir que várias chamadas RESTful sejam feitas em paralelo.
Além disso, esta biblioteca fornece classes que agrupam respostas curl na interface orientada a objetos:
CurlHttpResponse - uma classe que encapsula uma resposta HTTP recebida via cURL em um wrapper de classe.
CurlMultiHttpResponse - uma classe que representa uma coleção de objetos CurlHttpRepsonse retornados de várias chamadas cURL paralelas.
Essas classes suportam:
Ações HTTP – GET, POST, PUT, DELETE e HEAD
Autenticação básica
SSL, com a capacidade de alternar a validação do certificado SSL para ajudar em ambientes de desenvolvimento/teste
Requer:
PHP 5.6+
Extensão PHP cURL
PHPUnit 5.7+ (somente para testes unitários)
Esta biblioteca foi desenvolvida em PHP 7.1 e testada via Travis CI em:
PHP 5.6.*
PHP 7.0.*
PHP 7.1.*
Construção noturna do PHP
Documentação completa da biblioteca
Status de compilação do Travis CI
Código Cobertura do código climático e informações de saúde
Página do empacotador
Exemplo de uso:
<?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', ...]);