APIs

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 nesse tutorial.

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 nesse tutorial, 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 feita na fanpage do portal, apresentando o funcionamento da integração do tutorial citado acima.

 

Bons estudos!