pbmengine / php-restclient
通用的PHP客户端,用于访问REST API
0.9.7
2019-10-07 07:50 UTC
Requires
- php: ^7.2.0
- guzzlehttp/guzzle: ^6.3
- illuminate/support: 5.7.*|5.8.*|6.0.*
- mockery/mockery: ^1.0
Requires (Dev)
- phpunit/phpunit: ^8.0
README
本出版物描述了一个通用的REST API客户端,适用于所有PHP软件包。
安装
您可以通过composer安装此软件包
composer require pbmengine/php-restclient
基本用法
use Pbmengine\Restclient\HttpClient; $client = new HttpClient; // or $client = new HttpClient(\GuzzleHttp\Client, 'https://example.com/v1', ['timeout' => 30]); $response = $client->get('users'); $response = $client->jsonPayload(['id' : 1])->post('users');
客户端方法
$client->baseUrl('https://example.com/v1');
$client->options(['http_errors' => false, 'timeout' => 30]);
$client->option('http_errors', false);
$client->authorizationBearer('token');
$client->authorizationHttp('username', 'password');
$client->authorizationDigest('username', 'password');
$client->headers(['API-KEY' => 30]);
$client->header('API-KEY', 30);
$client->queryParams(['embed' => 'resource']);
$client->queryParam('embed', 'resource');
$client->jsonPayload([]);
$client->multipartPayload([]);
$client->formParamsPayload([]);
$client->getHeaders();
$client->getQueryParams();
$client->getBody();
$client->getRequestUrl('endpoint');
$response = $client->get('users');
$response = $client->post('users');
$response = $client->put('users/12');
$response = $client->delete('users/12');
$response = $client->patch('users/12');
$response = $client->head('users/12');
响应方法
$response->statusCode(); // 200
$response->headers(); // []
$response->raw(); // ResponseInterface
$response->raw()->getHeaders(); // []
$response->isValid(); // true
$response->isServerError(); // false
$response->isClientError(); // false
$response->content(); // StdClass
$response->contentAsArray(); // Array
$response->contentAsJson(); // Json String
$response->contentAsCollection(); // Illuminate Collection
多个请求的使用案例
$client = (new HttpClient)
->baseUrl('https://example.com')
->authorizationBearer('your token');
// get all users
$response = $client
->queryParam('embed', 'client');
->get('users');
// update user
$response = $client
->jsonPayload(['name' => 'John'])
->put('users/' . $response->content()->data->id);
// set new Bearer
$client->authorizationBearer('another token');
// delete user
$response = $client->delete('users/id');
测试
composer test
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全性
如果您发现任何与安全相关的问题,请通过电子邮件systems@personal-business-machine.com联系,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。