jetimob/http-php-laravel

Guzzle 封装器,用于抽象必须通过 OAuth2.0 授权的请求

v2.2.1 2023-02-17 13:55 UTC

README

CI status Conventional Commits

这个库作为 Guzzle 的封装,简化了需要授权(如 OAuth 2.0)的请求交换,并自动将 HTTP 响应反序列化为表示这些响应的对象实例。

有关自动反序列化响应到类的更多信息,请查看方法 complexResponseWithArrayTyping

所有 HTTP 请求部分都委托给 Guzzle 处理,因此大多数配置都可以从 官方文档 中获取。

OAuth 2.0

流程

客户端凭证

授权代码

配置

序列化

重要!

如果使用 OPcache,则需要启用 opcache.save_comments 选项,即: opcache.save_comments=1
这是为了使响应向量能够自动通过 PHP docblock 进行反序列化。例如,考虑以下代码

/**
 * @var \Jetimob\Http\Response[] $response_array
 */
protected array $response_array = [];

如果这个声明在一个扩展了 \Jetimob\Http\Response 的类内部,并且 HTTP 响应包含一个名为 response 的属性,其类型为 array,它将自动反序列化为在 docblock 中声明的类型(在这种情况下为 \Jetimob\Http\Response)的向量。
为了正确工作,定义的变量类型必须使用 trait Jetimob\Http\Traits\Serializable.

在 docblock 中定义变量类型的 必须 是其完整形式,即 \Jetimob\Http\Response,而不是 Response,并使用命名空间导入 use Jetimob\Http\Response;