bonuscred/rest-client

API client manager for handling HTTP requests and responses

v1.1.1 2024-06-24 17:24 UTC

This package is auto-updated.

Last update: 2024-09-24 18:03:00 UTC


README

Gerenciador de requisições HTTP utilizando cURL

Instalação

Para instalar esta dependência através do Composer.

composer require bonuscred/rest-client

Utilização

$req = new RestClient\Request;
$res = $req->get('https://api.github.com/repos/dnlfranklin/rest-client');

echo $res->getHeaderLine('content-type');
echo $res->get_http_code();
echo $res->get_data(); 

Request

Métodos

Chamadas HTTP

Todas as chamadas HTTP retornam um objeto Response.

Chamada com método estático
$res = new RestClient\Request::run('https://api.github.com/repos/dnlfranklin/rest-client', 'GET'); // Objeto Response
Callback hooks
$req = new RestClient\Request;

// Callback chamado em caso em requisições bem sucedidas
$req->onSuccess(function(Response $response){
    echo 'Success: '.$response->get_http_code();
});

// Callback chamado em caso de erro de requisição
$req->onError(function(Response $response){
    echo 'Error: '.$response->get_errmessage();
});

// Callback chamado após finalização de requisição
$req->onComplete(function(Response $response){
    echo $response->get_body();
});

$res = $req->get('https://api.github.com/repos/dnlfranklin/rest-client');

Concatenação de métodos

$req = new RestClient\Request;

$res_data = $req->baseUrl('https://api.github.com')
                ->buildIndexedQueries(true)
                ->requestFormat('json')
                ->responseFormat('json')
                ->userAgent('Minha API/1.0.0')
                ->onError(function(Response $response){
                    echo 'Error: '.$response->get_errmessage();
                })
                ->get('/repos/dnlfranklin/rest-client')
                ->get_data();            

Response

Decode

Suporta atualmente json e xml como auto-decodes, retornando um Array identado dos atributos, caso seja encontado no header (content-type) ou passado via request (responseFormat()).

$res = new RestClient\Request::run('https://api.github.com/repos/dnlfranklin/rest-client');

$data = $res->get_data(); // Array de atributos recebidos no formato json

Pode ser formatado através de um callback.

$res = new RestClient\Request::run('https://api.github.com/repos/dnlfranklin/rest-client');

$data = $res->decode(function($body){
    //Tratamento específico de decode
});

Atributos

É possível acessar todos os dados de requisição/resposta diretamente dos atributos ou via função encapsulada (get_) do objeto Respnse. Lista de atributos disponíveis:

Requisitos

  • PHP 8.0 ou superior
  • Pacote libcurl versão 7.29.0 ou superior