Esta biblioteca proporciona clases que implementan clientes REST básicos basados en la extensión cURL de PHP. Hay dos clases de clientes disponibles:
RestClient: una clase para ejecutar llamadas de servicio RESTful.
RestMultiClient: una clase que extiende RestClient para proporcionar capacidades curl_multi para permitir que se realicen múltiples llamadas RESTful en paralelo.
Además, esta biblioteca proporciona clases que envuelven respuestas curl dentro de una interfaz orientada a objetos:
CurlHttpResponse: una clase que encapsula una respuesta HTTP recibida a través de cURL en un contenedor de clase.
CurlMultiHttpResponse: una clase que representa una colección de objetos CurlHttpRepsonse devueltos por múltiples llamadas cURL paralelas.
Estas clases apoyan:
Acciones HTTP: OBTENER, POST, PUT, DELETE y HEAD
Autenticación básica
SSL, con la capacidad de alternar la validación del certificado SSL para ayudar en entornos de desarrollo/prueba
Requiere:
PHP 5.6+
Extensión PHP cURL
PHPUnit 5.7+ (solo para pruebas unitarias)
Esta biblioteca está desarrollada con PHP 7.1 y probada mediante Travis CI con:
PHP 5.6.*
PHP 7.0.*
PHP 7.1.*
PHP compilación nocturna
Documentación completa de la biblioteca
Estado de compilación de Travis CI
Código Cobertura del código climático e información de salud.
Página del empaquetador
Ejemplo 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', ...]);