Skip to content

lumacielz/CurrencyConversionAPI

Repository files navigation

API de Conversão Monetária

API Rest que lida com conversão monetária. Suporta moedas reais e customizadas, criadas pelo usuário.

Documentation

A documentação detalhada da API está disponível em:

A aplicação foi desenvolvida em Go, utilizando conceitos de Clean Architecture. Foram utilizadas algumas bibliotecas como o router chi e alguns utilitários como o viper para arquivos de config e o logrus para logs.

Os dados de cotação são consumidos da API pública de cotação de moedas Awesome API e salvos em uma collection no mongoDB Atlas. Segundo a documentação da API, os dados são atualizados a cada 30 segundos, dessa forma, a cada query de busca por uma moeda, a aplicação verifica se os dados de cotação estão atualizados, e os atualiza caso negativo.

Ao solicitar uma conversão de/para uma moeda que não exista no banco, se esta for contemplada pela Awesome API, será inserida automaticamente de forma que todas as moedas suportadas pela Awesome API são suportadas aqui.

É possível ainda inserir moedas customizadas, para isso são feitas algumas validações como se o código da moeda é único no banco, e se a taxa de conversão é maior que zero de modo a evitar uma divisão por zero.

Running

  • Makefile: - necessita uma versão do Go instalada
$ make run
  • Docker
$ docker build -t c-api .
$ docker run -p 8080:8080 c-api

Após executar um dos comandos, o servidor será iniciado no endereço localhost:8080.

Testing

  • Makefile:
$ make tests

Test Coverage

  • Makefile:
$ make coverage

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages