Guia Prático: Ferramentas para Simulação de Requisições em APIs
Quando estamos construindo uma API precisamos fazer uma simulação das requisições que serão feitas por agentes externos.
Como uma API não tem um HTML diante de nós, como simular essas requisições?
Certamente precisamos de ferramentas para isso e abaixo apresento três ferramentas começando da mais simples até uma com interface avançada.
O objetivo desse post é ajudar quem está aprendendo a construir API’s e antes de começar, um breve resuminho sobre conceito de API.
API
API é uma interface padronizada desenvolvida já com o objetivo de fácil integração com outras aplicações. Isso quer dizer basicamente que a API vai ser utilizada por algum fator externo, quer seja uma aplicação frontend, uma app mobile ou qualquer outra aplicação externa.
Sendo assim, se outra aplicação que vai consumir a sua API você precisa garantir que o retorno seja conforme acordado.
Antes de entrar no mérito dos testes, vamos falar de algumas coisas importantes a serem testadas.
Status code
Imagine a situação em que um campo requerido não é enviado, e a API retorna um texto. Como diferenciar se esse texto representa um erro ou um sucesso?
O Status code é o código que representa o status de resposta da requisição (https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). É importante que sua API retorne o status code correto, de acordo com o que está sendo retornado.
Abaixo alguns dos status code mais utilizados.
200 OK
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
500 Internal Server Error
Formato
Outra coisa que você precisa verificar é se a API está retornando as informações no formato esperado, quer seja texto plano, json, xml ou até mesmo uma imagem. Isso é importante pois por exemplo, se quem consome essa API é uma aplicação em Angular onde é esperado um json, se for retornado um texto plano vai dar erro.
Conteúdo
Existe API cujo retorno é possível testar de forma integral, quero dizer, você consegue testar se a resposta é exatamente aquilo que você espera, como por exemplo:
{“message”:”email is required”} ou {“mensagem”:”Dados salvos com sucesso”}.
Mas também existem situações onde uma verificação integral não é viável, em que na verdade você só precisa atestar que determinadas informações constam dentro do corpo de resposta.
Curl
O Curl é uma ferramenta para transferir dados via linha de comando. Você manualmente precisará indicar tudo o que vai ser enviado na requisição (dados, cabeçalhos, método).
Abaixo o exemplo de uma requisição POST enviando um json com os campos email e password.
Repare algumas informações importantes referentes à resposta, o status code 200 indicando que a resposta da requisição ocorreu com sucesso, o content type é um json – assim como a requisição – e o json de resposta contém uma mensagem de sucesso.
RESTClient
O RESTClient é um plugin do Firefox. Ele tem uma interface clean e permite salvar requisições rotineiras.
Ter uma interface mais amigável em comparação ao uso via linha de comando sem dúvidas ajuda bastante.
Assim como o Curl, no RESTClient você indica o método HTTP, cabeçalhos e corpo da requisição. Feitas as devidas definições, ao clicar no botão SEND a requisição é feita para a URL indicada e mais abaixo serão retornados dados da resposta.
https://addons.mozilla.org/pt-PT/firefox/addon/RESTClient/
https://github.com/chao/RESTClient
Postman
Das três opções essa é a mais avançada. O Postman é uma ferramenta bem completa que permite salvar requisições, compartilhar coleções de requisições além de possibilitar criação de scripts em Javascript para criar testes para suas API’s. Mas vamos devagar né? O que queremos pra começar é uma interface amigável para montar as requisições HTTP.
Assim como o RESTClient tem uma interface muito bacana, mas o Postman possibilita uma organização melhor.
Você consegue criar uma collection por projeto e dentro de cada collection as requisições correspondentes.
Finalizando
Eu usei o RESTClient por bastante tempo, a versão anterior a que eu apresentei aqui. Eu já havia testado o Postman mas me senti mais à vontade com o RESTClient na ocasião e mantive com ele.
Depois por motivos de atualização do Firefox a versão que eu utilizava foi descontinuada então dei uma nova chance ao Postman e desde então tenho usado ele.
Para fins de aprendizado sobre requisições HTTP o Curl é interessante, mas no dia a dia acho prático ter uma opção com interface mais amigável.
Eu sugiro agora que você teste essas ferramentas e veja com qual você se sente mais confortável e produtivo.
About author
Você pode gostar também
Introdução ao Robot Framework: Ferramenta para Testes Automatizados
Hoje, no blog da 4Linux, vamos falar sobre Robot Framework, uma ferramenta voltada para testes automatizados. O objetivo é fazer uma séries de posts até a criação de uma pipeline
Docker: Ferramenta essencial para desenvolvedores e gestão de aplicativos
O que é o Docker O Docker é uma ferramenta de código aberto para conteinerização que agiliza a criação e a implantação de aplicativos por meio do uso de contêineres.
Descubra as novidades do PostgreSQL 13: suporte a colações não determinísticas
Com o lançamento recente do PostgreSQL 13 e com a grande maturidade das versões anteriores, algumas das novidades dessas versões mais recentes se tornam cada vez mais disponíveis para uso