Mockoon: O Destruidor de Impedimentos

Algo muito recorrente no desenvolvimento de aplicações é a necessidade de consumirmos um serviço através de uma API que, por N motivos, não esteja disponível para ser consumida, mas ao mesmo tempo tem a sua estrutura para consumo já bem especificada.

Seja pelo serviço que você precisa consumir estar fora do ar ou ainda em desenvolvimento e a sua aplicação tem a necessidade de contemplar a integração com esse serviço, o Mockoon nos traz a possibilidade de contornar essa situação criando uma API Rest local com dados mockados.

Vem comigo que vamos entender melhor como essa ferramenta maravilhosa pode te livrar de impedimentos e facilitar os testes das suas integrações.

O que é Mockoon?

Mockoon é uma ferramenta open-source que viabiliza a possibilidade de criar uma API Rest local de maneira simples e objetiva trabalhando com dados mockados (leia-se fake).

Ela nos permite simular cenários reais de uma API Rest, assim como também nos dá a possibilidade de realizar chamadas reais (como veremos melhor descrito abaixo com o Modo Proxy).

Primeiras impressões

Após ter feito a instalação do Mockoon para o seu sistema operacional (página de download oficial: https://mockoon.com/download/) e executá-lo, você irá se deparar com um ambiente de demonstração.

O layout nos traz uma forte lembrança da UI do Postman, tendo à esquerda um menu onde ficam os ambientes, outro menu ao lado onde ficam as rotas e um container à direita onde estão mais configurações.

Criando novo ambiente

Para criar um novo ambiente vamos localizar o botão New Environment posicionado logo acima do menu das rotas.

Ao selecionar New Environment o Mockoon irá nos pedir para darmos um nome para o arquivo do novo ambiente.

Dado nome ao nosso ambiente, agora vamos adicionar uma nova rota.

Ao adicionar uma nova rota no nosso ambiente, clicando no ícone de adicionar rota ( Add route +), podemos definir no container à direita o verbo http da nossa rota, seu endereço, status code e a resposta (json) que gostaríamos de mockar.

Há a possibilidade também de adicionar mais de uma resposta para a mesma rota, clicando no ícone Add response (+).

Podemos definir que a nossa rota nos responda de maneira randômica ou sequencial em relação às respostas adicionas.

Além das maneiras mencionadas, é possível definir regras para cada uma das respostas, de maneira que, a rota irá nos retornar a resposta que atender às regras definidas (importante notar que as regras são desabilitadas quando o modo randômico ou sequencial é habilitado).

Vejamos o exemplo abaixo.

Na aba de Rules é possível adicionar regras para que essa resposta seja retornada quando a rota for requisitada. No caso acima, foi definido que, se o parâmetro id passado na url for igual a 1, então essa resposta é a que deve ser retornada.

Colocando em prática

Vamos então colocar em prática o que vimos até agora: disponibilizar nossa API e efetuar algumas requisições.

Antes de darmos start no nosso ambiente, vamos dar uma olhada na aba de Configurações ( Settings).

Nessa aba podemos definir a porta que a nossa API irá rodar, o prefixo da nossa API, se irá “ouvir” apenas a requisições feitas via localhost e algumas outras configurações como certificado TLS, latência de resposta e etc.

Sempre que um novo ambiente é adicionado, a porta é incrementada. Se o primeiro ambiente estava com a porta 3000, então o nosso novo ambiente Example será setado com a porta 3001. Isso não nos impede de também setarmos a porta 3000 para esse ambiente, contudo é importante notar que não é possível rodar mais de um ambiente na mesma porta (e se você tentar, o Mockoon irá alertá-lo).

Tudo definido, vamos subir a nossa API.

Clicando em Start server estamos “jogando no ar” a nossa API de Mocks. Uma vez de pé, já podemos acessá-la via endereço localhost ou pelo endereço da máquina que está hospedando-a.

Fazendo uma requisição via Postman à nossa rota home recebemos a primeira resposta que definimos anteriormente.

Efetuando uma segunda requisição via Postman, dessa vez passando o parâmetro id como 1, obtemos como resposta um body vazio, como foi definido na Response 2 onde especificamos a regra do tipo Query String.

Modo Proxy

Como mencionado no início do artigo, o Mockoon possui uma funcionalidade de grande importância: o Proxy Mode. Configurando essa funcionalidade, temos em nossas mãos a possibilidade de redirecionar a requisição feita na nossa API para outro endereço, desde que essa requisição não tenha sido definida nas rotas.

Para melhor entendimento dessa funcionalidade imagine um cenário onde você necessita que apenas algumas rotas sejam mockadas e as demais sejam executadas de fato no serviço alvo que você está consumindo. Neste cenário, haveriam apenas algumas rotas que necessitariam responder com um mock — por indisponibilidade do serviço ou algo semelhante — e as demais precisariam ser executadas no serviço em questão. É nesse ponto que o Proxy Mode se apresenta como uma grande utilidade.

Para melhor demonstração na prática estaremos utilizando o Go REST, um serviço web que fornece uma API Rest com diversas rotas prontas para serem consumidas.

Vamos então dizer para o nosso ambiente que qualquer rota que for interceptada e não estiver na nossa lista de rotas ( Routes) sejam direcionadas para o endereço https://gorest.co.in/public/v2.

Na aba Proxy definimos então o Target URL como o domínio do gorest.co.in juntamente com o sufixo public/v2.

Dessa forma, efetuando uma requisição para o endpoint “users” (o qual não foi definido nas nossas rotas mas está presente no serviço gorest), temos a nossa requisição redirecionada para o endereço gorest.co.in/public/v2.

Acompanhando Logs

Eu já te contei que também temos como acompanhar o log de cada requisição efetuada para a nossa API de Mocks?

Na aba de Logs, temos ao nosso dispor o histórico das requisições executadas, contendo as informações de entrada e saída das mesmas.

Por fim…

Nesse artigo, vimos como configurar um ambiente API Rest local, definir suas rotas e requisitá-las, além de diversos complementos que acompanham esse processo.

O Mockoon é de fato uma ferramenta muito completa, a qual possui tantas funcionalidades que, para apenas um artigo, seria muito a ser apresentado. Por conta disso, convido você a entender melhor o que esse camarada tem a nos oferecer visitando sua documentação: https://mockoon.com/docs/latest/about/.

Espero ter sido útil nesse artigo, com o objetivo de acrescentar no mundo do desenvolvimento, apresentando uma ferramenta que auxilia nos testes de integração com serviços, estando esses disponíveis ou não.

Desenvolvedores sem impedimentos, são desenvolvedores indestrutíveis.

Originally published at https://medium.com on March 31, 2022.

--

--

--

Impulsionar pessoas para inovar o mundo

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
SOUTH SYSTEM

SOUTH SYSTEM

Impulsionar pessoas para inovar o mundo

More from Medium

Refactoring

Waiting, Part 2 (an experiment in Movement and Stillness)

How to run any GUI software on the container ?

What is Git?