joshuaify / guzzlelib
用于 Guzzle HTTP 客户端的包装库
v1.0.0
2024-09-24 12:08 UTC
Requires
- php: ^7.2
- guzzlehttp/guzzle: ^7.0
README
Guzzlelib 是一个用于 Guzzle HTTP 客户端的 PHP 包装库,提供了一种简化接口来发送 HTTP 请求。它提供了一个易于使用的 API 来进行 GET、POST、PUT、PATCH 和 DELETE 请求,内置了错误处理和响应解析。
此库适用于 PHP 7.2+,与流行的 PHP 框架兼容,包括 Laravel、Symfony、CodeIgniter、Zend、Yii、CakePHP 和 Slim。它非常适合任何需要高效 API 通信的 PHP 应用程序。
要求
- PHP 7.2 或更高版本
- Composer(用于依赖管理)
- Guzzle HTTP 客户端
安装
您可以使用 Composer 在项目目录中运行以下命令来安装 Guzzlelib:
composer require joshuaify/guzzlelib
用法
初始化
首先,在您的 PHP 文件中包含 Guzzlelib 类
use joshuaify\API\Guzzlelib;
或者
require 'path/to/your/vendor/joshuaify/guzzlelib/src/Guzzlelib.php';
然后,创建一个 Guzzlelib 实例
$guzzlelib = new Guzzlelib([ 'base_uri' => 'https://api.example.com', 'timeout' => 30.0, 'headers' => [ 'Authorization' => 'Bearer your-token-here' ] ]);
发送请求
GET 请求
$response = $guzzlelib->getRequest('/users', ['page' => 1]);
POST 请求
$response = $guzzlelib->postRequest('/users', [ 'name' => 'John Doe', 'email' => 'john@example.com' ]);
PUT 请求
$response = $guzzlelib->putRequest('/users/1', [ 'name' => 'Jane Doe' ]);
PATCH 请求
$response = $guzzlelib->patchRequest('/users/1', [ 'email' => 'jane@example.com' ]);
DELETE 请求
$response = $guzzlelib->deleteRequest('/users/1');
处理响应
所有请求方法都返回一个包含两个键的数组:code
和 body
。
code
:响应的 HTTP 状态码。body
:响应的解码 JSON 主体。
示例
$response = $guzzlelib->getRequest('/users'); if ($response['code'] === 200) { $users = $response['body']; // Process $users data } else { // Handle error echo "Error: " . json_encode($response['body']); }
错误处理
如果请求失败,Guzzlelib 将返回一个包含 error
键设置为 true
和描述错误的 message
的数组。
$response = $guzzlelib->getRequest('/non-existent-endpoint'); if (isset($response['error']) && $response['error'] === true) { echo "Error occurred: " . $response['message']; }
配置选项
在初始化 Guzzlelib 时,您可以通过一个配置选项数组传递
base_uri
:所有请求的基础 URL。timeout
:请求的超时时间(以秒为单位)。headers
:要随每个请求发送的默认头信息数组。auth
:身份验证方法(例如,对于基本身份验证 ['username', 'password'])。proxy
:代理设置。verify
:SSL 证书验证(设置为false
以禁用)。connect_timeout
:尝试连接到服务器时等待的秒数。cookies
:设置为true
以使用共享的 Cookie 会话,或提供一个GuzzleHttp\Cookie\CookieJarInterface
实例。allow_redirects
:设置为false
以禁用重定向。debug
:设置为true
以启用调试输出。http_errors
:设置为false
以禁用在 HTTP 协议错误(4xx 和 5xx 响应)上抛出异常。
贡献
欢迎贡献!请随时提交拉取请求。
许可证
此库是开源软件,采用 MIT 许可证。