jetimob / http-php-laravel
Guzzle wrapper to abstract requests that must be authorized through OAuth2.0
Installs: 5 290
Dependents: 12
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 1
Open Issues: 0
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.4
- illuminate/console: ^9 || ^10
- illuminate/container: ^9 || ^10
- illuminate/support: ^9 || ^10
Requires (Dev)
- orchestra/testbench: ^7.6
- phpunit/phpunit: ^9.5
README
Essa biblioteca funciona como um envelope em torno do Guzzle para facilitar a troca de requisições que precisam de alguma forma de autorização (como o OAuth 2.0) e para automatizar a deserialização das respostas HTTP em instâncias de objetos que representam essas respostas.
Para mais informações sobre a deserialização automática de respostas para classes, olhar o método complexResponseWithArrayTyping.
Toda parte fazer a requisição HTTP é delegada ao Guzzle, sendo assim, a maioria das configurações utilizadas pode ser retirada da documentação oficial.
OAuth 2.0
Flows
Client Credentials
Authorization code
Configuração
Serialização
Importante!
Se o OPcache for utilizado, a opção opcache.save_comments
precisa ser ativada, i.e.: opcache.save_comments=1
.
Isso é necessário para que os vetores de uma resposta possam ser automaticamente deserializados com um PHP docblock.
Por exemplo, considere o código abaixo:
/** * @var \Jetimob\Http\Response[] $response_array */ protected array $response_array = [];
Se essa declaração estiver dentro de uma classe que estenda \Jetimob\Http\Response
e a resposta HTTP conter uma
propriedade nomeada response
do tipo array
, ela será automaticamente deserializada num vetor de objetos do tipo
declarado no docblock (\Jetimob\Http\Response
nesse caso).
Para funcionar corretamente, o tipo da variável definida deve usar a trait Jetimob\Http\Traits\Serializable
.
A definição do tipo da variável no docblock precisa estar na sua forma completa, isso é, \Jetimob\Http\Response
e não Response
junto de uma importação de namespace use Jetimob\Http\Response;
.