joshuaify/guzzlelib

用于 Guzzle HTTP 客户端的包装库

v1.0.0 2024-09-24 12:08 UTC

This package is auto-updated.

Last update: 2024-09-24 12:09:37 UTC


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');

处理响应

所有请求方法都返回一个包含两个键的数组:codebody

  • 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 许可证