Douglas Moura

Douglas Moura

Engenheiro de Software

Douglas Moura

Douglas Moura

Engenheiro de software, músico and jiujiteiro

O mínimo que você precisa saber para testar suas APIs com CURL

Publicado em:Publicado em:Atualizado em:

O mínimo que você precisa saber para testar suas APIs com CURL

O CURL é uma ferramenta de linha de comando que permite transmitir dados com sintaxe de URL, suportando uma miríade de protocolos (DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS e WSS). Neste artigo, vou focar no uso do CURL para fazer requisicões HTTP para APIs, que, pelo menos, para mim, é o uso mais comum.

Instalação

O CURL já vem instalado na maioria das distribuições Linux e nas versões mais recentes do Windows. Para verificar se ele está instalado, basta executar o comando curl no terminal. Se você não tiver o CURL instalado, você pode instalar com o comando sudo apt install curl (Ubuntu/Debian) ou sudo yum install curl (CentOS/Fedora) ou winget install curl (Windows).

Ah, e como é comum que trabalhemos com APIs REST no desenvolvimento web, outra ferramenta de linha de comando que nos será útil é a jq, que serve para formatar o JSON no terminal. Para instalar a jq, basta executar o comando sudo apt install jq (Ubuntu/Debian) ou sudo yum install jq (CentOS/Fedora) ou winget install jqlang.jq (Windows).

Nossa API de exemplo

Para fins didáticos, vou usar o DummyJSON como API.

Fazendo uma requisição GET

Para fazer uma requisição GET, basta executar o comando curl seguido da URL que você quer acessar. Por exemplo, para solicitar os dados do produto 1, basta executar o comando curl https://dummyjson.com/products/1.

E, para formatar a saída, basta adiciona um | jq ao final do comando:

curl https://dummyjson.com/products/1 | jq

Fazendo uma requisição POST, PUT, PATCH ou DELETE com JSON no corpo

Para fazer uma requisição POST, basta executar:

curl --json '{"title": "Novo produto"}' https://dummyjson.com/products/add

O curl se encarregará de adicionar os cabeçalhos Content-Type: application/json e Accept: application/json. Caso queira fazer uma requisição do tipo PUT, PATCH ou DELETE, adicione a opção -X seguida do método HTTP que você quer usar. Por exemplo, para fazer um PUT, execute:

curl -X PUT --json '{"title": "Novo título"}' https://dummyjson.com/products/1

Você também pode enviar um arquivo JSON ao invés de digitar o JSON no terminal colocando um @ na frente do nome do arquivo:

curl --json @arquivo.json https://dummyjson.com/products/add

Ou passando os dados do stdin (note que eu uso @- ao invés de @ para indicar que os dados virão do stdin):

curl --json @- https://dummyjson.com/products/add < arquivo.json

Fazendo uma requisição com cabeçalhos

Para fazer uma requisição com cabeçalhos, basta executar o comando curl seguido da URL que você quer acessar, e da opção -H seguida do cabeçalho que você quer enviar. Então, para enviar um Bearer Token, você executaria o seguinte comando:

curl -H "Authentication: Bearer token" --json '{"title": "Novo produto"}' https://dummyjson.com/products/add

Alguns exercícios

Julia Evans publicou alguns exercícios para você ficar fluente no uso do curl. Vale a pena dar uma olhada neste artigo no blog dela.

Referências

Deixe um comentário

Carregando comentários...