Principal | Cadastre-se | Cadastre seu artigo | Biblioteca | Artigos | Revistas | Podcast | Videos | Cadastre seu emprego | Empregos | Logar

cURL com PHP para APIs RESTful

image

A biblioteca cURL é ideal e completa para quem quer realizar requisições ou transferir dados através do backend de suas aplicações. Com o cURL alem de requisões simples como GET e POST é possivel realizar requisições utilizando outros protocolos com FTP, POP, IMAP e outros.

Antes de começarmos temos que chamar a função que fará com que nosso desenvolvimento funciona.

$curl = curl_init();

Configurando na pratica

Ao iniciarmos o recurso cURL podemos utilizar parâmetros que configurarão nossa requisição. Veja abaixo alguns parâmetros importantes:

  • CURLOPT_RETURNTRANSFER - Retorna uma string
  • CURLOPT_CONNECTTIMEOUT - Segundos tentando conectar até o timeout
  • CURLOPT_TIMEOUT - Segundos limite para execução do cURL
  • CURLOPT_USERAGENT - String contendo um user-agent
  • CURLOPT_URL - URL - enviar a requisição
  • CURLOPT_PORT - Informe de porta
  • CURLOPT_HTTPHEADER - Cabeçalhos da requisição
  • CURLOPT_POST - Envia a requisição como POST
  • CURLOPT_POSTFIELDS - Array de informações enviadas como POST

Para informarmos um parametro devemos utilizar a função curl_setopt() e caso necessário podemos informar mais de um parametro utilizando a função curl_setopt_array() como nos exemplos abaixo:

Exemplo 01:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://dominio-exemplo.com.br');

Exemplo 02:

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://dominio-exemplo.com.br'
]);

ENVIO

Agora que ja entedemos como configurar o nosso envio, vamos utilizar a função curl_exec() que executara o nosso envio. Ao enviarmos podemos nos deparar com duas respostas false que se refere quando a algum erro na execução da requisição e true que ocorre quando a requisição foi realizada.

Além das funções e resultados apresentados acima é importante que ao terminar a requisação o cURL seja fechado para limpar os recursos que estão sendo utilizados no momento e para isso preparei exemplos abaixo que você poderá copiar e colar em sua aplicação caso precise.

EXEMPLO: GET

// Inicia 
$curl = curl_init();

// Configura
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://dominio-exemplo.com.br/?item=valor-do-item'
]);

// Envio e armazenamento da resposta
$response = curl_exec($curl);

// Fecha e limpa recursos
curl_close($curl);

EXEMPLO: POST

// Inicia
$curl = curl_init();

// Configura
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => 'http://dominio-exemplo.com.br',
    CURLOPT_POST => 1,
    CURLOPT_POSTFIELDS => [
        item1 => 'valor-do-item-1',
        item2 => 'valor-do-item-2'
    ]
]);
// Envio e armazenamento da resposta
$response = curl_exec($curl);

// Fecha e limpa recursos
curl_close($curl);

RETORNO DE ERROS

Com o tempo você ira se familiarizar mais com a biblioteca e e com isso começara a identificar que erros podem acontecer e devem ser tratados, para isso você pode usar as funcões curl_error() (retorna em formato string) e curl_errno() (retorna em formato código).

Com este conhecimento você será capaz de explorar e utilizar APIs RESTful em diversos projetos e aplicações móveis de maneira eficiente como as maiores atuais empresas do mundo utilizam.


Autor: Luccas Marra do Amaral
Udocs.me