mikecbrant / php-rest-client
PSR-4 PHP 包模板。
dev-master
2017-06-08 00:11 UTC
Requires
- php: >=5.6
- ext-curl: *
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- evert/phpdoc-md: ~0.2.0
- phpdocumentor/phpdocumentor: *
- phpunit/php-code-coverage: *
- phpunit/phpunit: >=5.7
This package is not auto-updated.
Last update: 2024-09-28 20:40:49 UTC
README
php-rest-client
此库提供了基于 PHP 的 cURL 扩展实现基本 REST 客户端的类。提供了两个客户端类
- RestClient - 执行 RESTful 服务调用的类。
- RestMultiClient - 扩展 RestClient 以提供 curl_multi 功能的类,允许并行执行多个 RESTful 调用。
此外,此库还提供了封装 cURL 响应的类,以面向对象的方式接口
- CurlHttpResponse - 封装通过 cURL 收到的 HTTP 响应的类。
- CurlMultiHttpResponse - 代表多个并行 cURL 调用返回的 CurlHttpResponse 对象集合的类。
这些类支持
- 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 Nightly 构建
使用示例
<?php
use MikeBrant\RestClientLib;
/**
* 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', ...]);