Imaster

Como consumir APIs em aplicações PHP de forma simples

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