Consumir APIs é uma funcionalidade que tem se tornado muito comum em sistemas web ou mesmo desktop. Muitas vezes, esse trabalho se torna complicado quando o desenvolvedor desconhece recursos que facilitam a implementação dessas funcionalidades, e é isso que vamos resolver hoje.
Vou mostrar para você a Unirest for PHP, um pacote que pode ser instalado via Composer e que facilitará o consumo de APIs nas suas aplicações PHP, seja utilizando CodeIgniter ou não.
Instalando o pacote
Instalar o pacote em sua aplicação é muito simples. Você pode executar a instalação de duas formas:
Via terminal
composer require mashape/unirest-php
Via composer.json
{
"require-dev": {
"mashape/unirest-php": "3.*"
}
}
Fazendo uma requisição com Unirest PHP
O pacote Unirest PHP possui features bem interessantes, como:
- Possibilidade de utilização dos métodos GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH para chamadas;
- Suporte a parâmetros enviados via formulários, upload de arquivos, gzip;
- Suporte a autenticação Basic, Digest, Negotiate, NTLM;
- Customização de timeout;
- Parse automático de JSON.
Para fazer uma requisição, você precisará de um código bem simples:
// Define o cabeçalho da requisição
$headers = array('Accept' => 'application/json');
// Define os parâmetros a serem enviados
$query = array('foo' => 'hello', 'bar' => 'world');
// Executa a requisição, obtendo a resposta
$response = Unirest\Request::post('http://url-do-endpoint/', $headers, $query);
// A variável $response é um objeto com as seguintes propriedades:
$response->code; // Código HTTP do status da requisição
$response->headers; // Headers
$response->body; // Dados retornados pela requisição já "parseados"
$response->raw_body; // Dados retornados pela requisição em seu formato original
Caso você precise fazer uma requisição enviando os dados em formato JSON, você não terá grandes alterações no código:
$headers = array('Accept' => 'application/json');
$data = array('name' => 'Blog', 'company' => 'Universidade CodeIgniter');
$query = Unirest\Request\Body::json($data);
$response = Unirest\Request::post('http://url-do-endpoint/', $headers, $query);
Consumindo uma API na prática
Para complementar o que foi apresentado hoje, clique aqui e veja um exemplo prático da integração entre o CodeIgniter, Unirest PHP e IBM Watson.
Você também pode assistir ao vídeo abaixo, que foi a gravação de uma live, apresentando o funcionamento da integração do artigo citado acima.



