Usando Insomnia para testar as requisições de nossas APIs
Criar APIs é uma tendência que está aumentando cada vez mais. Desenvolver nosso servidor para disponibilizar as informações e recursos de nosso sistema para vários ambientes nos ajuda a deixar nossos projetos ainda mais organizados. Contudo, para desenvolver uma API, é necessário testar o código criado. Em algumas situações, isso pode ser um problema.
Quando estamos listando dados, podemos acessar nossa API diretamente pelo navegador, pelo lado do cliente. Mas, se precisarmos testar a criação de um novo registro por meio do método POST ou a exclusão de um dado por meio do método DELETE, podemos notar algumas dificuldades. Como podemos fazer esses testes?
Você já criou uma tag HTML de formulário para testar o envio de dados para um servidor? Isso pode ser bem cansativo e não muito produtivo, não é mesmo? Para resolver essas questões, temos à nossa disposição ferramentas que nos ajudam nos testes de APIs REST. Uma dessas ferramenta é o Insomnia. Ele é muito simples, mas muito poderoso.
Neste artigo iremos realizar sua instalação e o veremos como utilizá-lo testar uma API, junto com recursos adicionais.
Instalação
O site oficial do Insomnia é o insomnia.rest.
Iremos baixar a versão “Insomnia Core”, voltada para os testes de APIs. Iremos fazer uso da página de downloads.
Mac
Para instalar o Insomnia no Mac, podemos usar o Homebrew:
brew cask install insomnia
Linux
Podemos realizar a instalação no Linux por meio do APT:
sudo apt-get update
sudo apt-get install insomnia
Windows
Podemos usar o Chocolatey para instalar o Insomnia no Windows. Para isso usamos o seguinte comando:
choco install insomnia-rest-api-client
Se desejar realizar a instalação pela maneira convencional, poderá selecionar o arquivo .exe e fazer seu download. Ao executá-lo, o Insomnia será instalado e iniciado no computador.
Testando uma API
Vamos testar uma API de cidades, escrita JavaScript, que estará disponível em nosso servidor local (localhost), na porta 3000. Vamos testar as rotas de CRUD dessas cidades.
Listando as Cidades
Para realizar nossa primeira requisição, vamos pressionar o botão com um símbolo de mais (+) e então clicar em “New Request”
Precisamos dar um nome para a nossa requisição. Podemos informar o nome que desejarmos. Em nosso caso, vamos chamá-la de “API LIST”:
O painel à nossa direita será aberto. Nele, poderemos informar a URL da nossa API na parte superior, ao lado do método, que neste caso é “GET”. A URL de nossa API para listar as cidades é http://localhost:3000/cities:
Após informar o endereço da API, basta clicar em “Send”. Em seguida, o painel mais à direita nos retornará os dados:
Excelente! Nossos dados foram retornados corretamente. Talvez pensemos: “Isso é bom, mas eu poderia ter esse mesmo resultado acessando a API pelo navegador.” Isso é verdade. Contudo, usando o Insomnia podemos deixar nossos testes bem organizados e ainda mais eficientes. Além disso, ao analisar o próximo método, iremos ver algumas outras vantagens em usar o Insomnia que são simplesmente indispensáveis.
Criando uma Cidade
O próximo método HTTP que iremos testar é o POST. Para isso, vamos repetir o processo de clicar no botão de nova requisição e então informar um nome para ela. Neste caso, daremos o nome “API CREATE”. Além disso, nessa mesma janela iremos mudar o método para “POST” e escolheremos como corpo de nossa requisição a opção “Form URL Encoded”.
A URL será a mesma, apenas mudará o método da requisição. Além disso, teremos a opção de informar os campos que queremos enviar para a API. Como escolhemos a opção de campos de formulário, essa parte envolverá dados com um identificador e um valor:
Ao clicar em “Send”, veremos o seguinte resultado no painel à direita:
Nossos dados foram inseridos, muito bom! Imagine fazer esse teste criando um formulário HTML. Daria muito mais trabalho. Com o Insomnia ficou muito mais simples, não é mesmo?
Editando uma cidade
O próximo método que iremos testar é o PUT. Ele é usado para atualizar todas as informações de uma cidade específica. Outra opção seria o método PATCH, que é usado para atualizar apenas parte do registro, e não ele como um todo.
Para utilizar o método PUT, iremos repetir o processo seguido antes com o POST, mudando apenas o nome da requisição para “API UPDATE”. Também iremos usar o corpo de formulário nessa requisição:
A URL conterá o ID da cidade que queremos alterar e também poderemos enviar os dados para essa atualização:
Veremos o seguinte resultado ao enviar a requisição:
Agora nossos dados foram atualizados.
Excluindo uma Cidade
O último método que iremos testar é o método DELETE. Iremos informar o nome “API DELETE” para essa requisição:
Essa requisição não possuirá corpo. Informaremos apenas o ID da cidade que queremos excluir. No caso deste exemplo, iremos excluir o registro com ID 2, que será informado na URL:
Após enviar a requisição, vemos o seguinte resultado:
Vemos que essa rota também está funcionando e percebemos como é simples realizar o teste de nossa API com o Insomnia. Contudo, há algumas funcionalidades adicionais que podem facilitar ainda mais nosso trabalho.
Algumas melhorias em nossos testes
Variáveis de Ambiente
Usamos o servidor http://localhost:3000 como base para nossos testes. Contudo, imagine que precisássemos mudar o endereço desse servidor para realizar novos testes. Ou se precisássemos testar a nossa API em produção. Neste caso, precisaríamos alterar o endereço deste servidor em todas as requisições que já criamos. Isso poderia gerar um trabalho bem repetitivo e cansativo, não é mesmo?
Para facilitar esse processo, o Insomnia possui variáveis de ambiente, que podem ser reutilizadas. Para acessá-las, basta clicar em “No Environment” > “Manage Environments” abaixo do menu principal do Insomnia:
Uma nova janela será aberta. Nela podemos ver uma área para adicionar um código JSON. Nele podemos definir nossas variáveis de ambiente. Por exemplo, vamos definir que a nossa URL base será o localhost. Usaremos o seguinte código para isso:
{
"hcode_url": "http://localhost:3000"
}
O próximo passo é substituir a string http://localhost:3000 pela variável hcode_url em nossas requisições. Para isso, basta digitar o nome da variável e o próprio Insomnia irá sugeri-la nas requisições:
Na imagem acima nós adicionamos a variável à rota GET, mas podemos fazer isso em todas as requisições. Agora, se precisarmos mudar a base de nossa API, basta alterar essa informação em um único local e essa mudança refletirá em todas as requisições.
Pastas
Outro recurso do Insomnia são as pastas. Elas permitem que agrupemos nossas requisições em “namespaces”, evitando que os nossos testes fiquem desorganizados conforme forem aumentando.
Para criar uma pasta basta clicar no botão com símbolo de mais (+) e então selecionar “New Folder”:
Daremos o nome “DEV” para essa pasta, visto que as requisições que criamos são voltadas para o desenvolvimento:
Agora, basta arrastar as requisições que criamos para dentro dessa pasta:
Agora sim, bem mais organizado. Dessa forma, se precisarmos criar requisições específicas para a produção, ou para outros projetos, elas não entrarão em conflito com as requisições de desenvolvimento.
Neste artigo tivemos uma introdução ao Insomnia. Vimos como ele é simples de instalar e usar, mas como também nos traz vários recursos para facilitar nossos testes de servidores baseados em REST. Esperamos que tenha gostado deste artigo e que possa usar o Insomnia no desenvolvimento de suas aplicações Web.
Aproveitando o momento, convidamos você a conhecer os cursos da Hcode. Se você deseja se destacar no mundo digital, aprimorar suas habilidades de programação, desenvolvimento web ou criar suas próprias aplicações e sites, nossos cursos são a escolha perfeita. Acesse: www.hcode.com.br/cursos e descubra como dar um impulso na sua carreira com o conhecimento e expertise que nossos instrutores qualificados podem oferecer. Não perca a oportunidade de se tornar um especialista com a Hcode!
Nos vemos no próximo artigo :)