| Data de elaboração | 11/05/23 |
| Responsável pelo estudo | Renato Nascimento de Lima, João Cícero Romão Gomes de Oliveira, Henrique dos Santos Oliveira, Vinicius da Rosa Pereira, Calebe de Araújo Stodulski |
| Equipe do estudo | Guardiões da Galáxia |
| Alvo | Todos os sistemas sob a responsabilidade do time Guardiões da Galáxia |
| Origem | Implementação: Estudo que levanta o que é necessário para configurar e utilizar a ferramenta Wiremock, conforme a User Story: “Uso da tecnologia WireMock para testar integrações com API" presente na Sprint número 126 do time Guardiões |
| Objetivo | Configurar a ferramenta Wiremock |
| Observações | Sem observações |
Durante o desenvolvimento de uma nova funcionalidade, se viu necessário o consumo de uma API que não possuía disponibilidade a todo tempo, e para não interromper o desenvolvimento da funcionalidade foi decidido pelos membros do time o uso de uma ferramenta que permite «emular» o retorno de uma API, fazendo com que fosse possível testar a funcionalidade e continuar o desenvolvimento mesmo quando a API que seria consumida pela funcionalidade não estivesse disponível.
Para utilizar a ferramenta você possui diversas opções, a escolhida pelo time foi utilizar Docker, o procedimento para instalação e execução da imagem foi feito de acordo com a documentação disponibilizada pelo próprio Wiremock que se encontra no link:Configuring and running WireMock in Docker | WireMock.
Após ter seu container do Wiremock criado, você vai ter uma pasta chamada mappings aonde você vai criar um arquivo do tipo JSON, nesse arquivo vai ser configurado as propriedades principais do ENDPOINT de acordo com sua necessidade, no nosso caso configuramos as seguintes propriedades:
request: criamos a rota e definimos o metódo (GET, POST, PUT ou DELETE)

response: configuramos se queremos que o response retorne com um OK, ou qualquer outro tipo de retorno desejável como você imaginou, isso da amplas possibilidades do que pode ser feito com a ferramenta

jsonBody: aqui configuramos o JSON que vai ser retornado quando for feito o GET pra rota previamente configurada

Após configurar todas as propriedades desejadas, você executa o seu container e pronto, você tem uma API «fake» que permite com que você teste da maneira desejada a sua funcionalidade, podendo inclusive configurar mappings para retornos indesejáveis e já criar as tratativas necessárias para eventuais indisponibilidades que possam ocorrer.
Com a utilização da ferramenta se viu possível o desenvolvimento da funcionalidade mesmo com a indisponibilidade da API alvo no ambiente de desenvolvimento e também se vê uma ampla gama de possibilidades para o uso da ferramenta em outros cenários, a ferramenta se mostrou extramamente útil para a equipe de desenvolvimento e atendeu a necessidade existente.