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 = UnirestRequest::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 = UnirestRequestBody::json($data); $response = UnirestRequest::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.
Powered by WPeMatico