Comandos curl para testar requisições API

Dicas - 30/Ago/2020 - por André Kanamura

O curl é uma ferramenta de linha de comando que permite lidar com transferência de dados por meio de diferentes tipos de protocolos, como HTTP, HTTPS, FTP, POP3, entre muitos outros. Por isso, o curl é uma boa forma de verificar chamadas e respostas de RESTful APIs que não dependem de linguagem de programação. Vamos mostrar brevemente alguns comandos curl que podem ser úteis para esse trabalho.

A estrutura de um comando curl consiste em:

$ curl [OPÇÕES] [URL]

O curl possui dezenas de opções, mas as mais comuns para lidar com APIs são:

Opção Descrição
-i, --include Mostra o header da resposta no output
-d, --data Dados a serem enviados no POST
-H, --header Envia o header da requisição
-X, --request Especifica o método HTTP a ser usado na requisição

HTTP GET

Vamos usar o JsonPlaceholder para nossos exemplos.

O padrão do comando curl é executar um GET na URL especificada, então o comando poderia ficar assim:

$ curl https://jsonplaceholder.typicode.com/todos

Você pode utilizar a opção -i para incluir o header no output.

HTTP POST

Para enviarmos dados em um POST, podemos usar a opção -d.

$ curl -d "userId=1&title=titulo da tarefa&completed=false" https://jsonplaceholder.typicode.com/todos

Usando essa opção, o curl automaticamente assume que queremos usar o método POST. O comando acima é efetivamente o mesmo que o seguinte:

$ curl -X POST -d "userId=1&title=titulo da tarefa&completed=false" https://jsonplaceholder.typicode.com/todos 

É possível que você precise personalizar o header da requisição se quiser, por exemplo, enviar dados em formato json. Neste caso, pode utilizar a opção -H para fazer isso:

$ curl -d '{"userId": 1, "title": "titulo da tarefa", "completed": false}' -H 'Content-Type: application/json' https://jsonplaceholder.typicode.com/todos 

HTTP PUT

Para atualizar ou substituir dados existentes no servidor, podemos usar o comando PUT. Ele é semelhante ao POST, mas precisamos especificar o método PUT com a opção -X e passar na URL o id do dado que vamos alterar, neste caso, a tarefa de id = 5:

$ curl -X PUT -d "userId=1&title=titulo da tarefa&completed=true" https://jsonplaceholder.typicode.com/todos/5 

HTTP DELETE

Para remover algum dado do servidor, podemos usar o comando DELETE, novamente utilizando a opção -X e o id do dado que será apagado na URL:

$ curl -X DELETE https://jsonplaceholder.typicode.com/todos/5 

Conclusão

Esse foi um breve resumo de algumas das formas que podemos utilizar o comando curl para trabalhar com requisições Web. Se quiser saber mais, recomendamos consultar a documentação oficial ou rodar o comando man curl no seu terminal para acessar o manual.

Referências

Foto de perfil do autor
André Kanamura

Dev na Campus Code