1. Introdução
Atualmente, existem diversas maneiras e ferramentas para se testar uma API RESTful, como exemplo podemos citar o famoso Postman.
Mas se você, assim como eu, tem preferência por usar ferramentas mais leves e minimalistas ou se sente mais produtivo realizando algumas tarefas por meio do terminal, apresentarei para você nesse post o cURL.
Para poder testar os exemplos que irei demostrar, você precisará de uma aplicação web em execução que seja capaz de responder a requisições HTTP com alguns dos verbos GET / POST / PATCH / DELETE. Também será necessário ter instalado o por razões obvias o curl. Para formatar as saídas do curl usaremos o json_pp e o bat (uma alternativa ao cat, em alguns repositórios o nome do pacote para instalação pode estar como batcat)
2. Instalação:
Linux Ubuntu/Debian:
$ sudo apt install curl perl batcat -y
MacOS:
$ brew install curl jsonpp bat -y 3. Formatando a saída
Para o exemplo que irei demonstrar aqui, fiz um simples CRUD usando o scaffold do Ruby on Rails, gerando uma class Article com os atributos title:string, content:text e published:boolean. Posteriormente inseri alguns dados do bando de dados da aplicação.
Com a aplicação em execução na porta 3000, podemos começar a testar as requisições com o curl.
$ curl http://localhost:3000/articles.json Por padrão, quando não informamos ao curl nada além da url de requisição, ele realiza uma requisição HTTP com o verbo GET.
Observe também, na imagem abaixo, que o resultado impresso no terminal possui uma legibilidade ruim. Para corrigir isso, vamos pegar a saída do curl e passá-la para o json_pp.
$ curl http://localhost:3000/articles/2.json | json_ppRequisitamos à nossa aplicação o post de id 2. Observe que agora temo uma resposta mais legível para, porém não temos nenhum formatação de syntax highligh. É nesse momento que entra o bat. Vamos repetir o comando, só que passando a saída do json_pp para o bat, devemos informar também ao bat qual a linguagem que ele deve formatar com parâmetro -l ou --language.$ curl http://localhost:3000/articles/2.json | json_pp | bat --language jsonAgora sim, temos um saída com uma legibilidade bem melhor.Agora que vimos o básico de como fazer a requisição e formatar a saída, vamos ver como utilizar outros recursos do curl para fazer mais requisições a nossa pequena e simples API REST.