Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/miguelamello/nestjs-restful-api

Microserviço que permite a rápida conversão entre moedas nacionais utilizando uma cotação permanentemente atualizada de forma automatizada com uma fonte externa segura.
https://github.com/miguelamello/nestjs-restful-api

docker nestjs nodejs typescript

Last synced: 10 days ago
JSON representation

Microserviço que permite a rápida conversão entre moedas nacionais utilizando uma cotação permanentemente atualizada de forma automatizada com uma fonte externa segura.

Awesome Lists containing this project

README

        

## MICROSERVIÇO CONVERSOR SBF

Microserviço que permite a rápida conversão entre moedas nacionais utilizando uma cotação permanentemente atualizada de forma automatizada com uma fonte externa segura. Todas as informações necessárias para a instalação do microserviço estão contidas nesse documento.
## Desenvolvimento

Esse microserviço foi desenvolvido em Node.js com Typescript sobre o framework Nest.js, o que garante uma operação robusta e reseliente em caso de erros de execução. Node.js é conhecido pela velocidade, segurança e versatilidade. Typescript é conhecida como uma linguagem robusta e que necessariamente impõe as boas práticas de programação. Nest.js é um Node Framework robusto e que utiliza por padrão o Typescript, Padrões de Design de Programação avançados, e muitas outras qualidades.

Node.js: `18.14.2`

Typescript: `5.0.2`

Nest.js: `0.0.1`

O foco da aplicação é:

* Robustez
* Resiliência
* Velocidade
* Segurança
* Versatilidade
* Precisão
* Maintainability

## Instalação

A aplicação é fácil de instalar. Abaixo segue sugestão dos passos à seguir:

1) Clone o repositório remoto em um diretório no seu localhost ou remotehost.

 `$ cd dev-projects`

 `$ git clone https://github.com/miguelamello/conversor-sbf.git`

2) Instale todos os pacotes e dependências necessárias para rodar a aplicação.

 `$ cd conversor-sbf`

 `$ npm i`

## Execução

Para rodar a aplicação você precisa seguir alguns passos que descrevemos a seguir. Você pode rodar a aplicação diretamente via Nest.js ou poderá subir um container no Docker.

Obs: O código já transpilado pelo Typescript está no diretório `dist` sob o diretório root do projeto.

### Rodando via Nest.js (Desenvolvimento)

Enquanto estiver no diretório root do projeto, simplesmente execute o Nest.js com o seguinte comando:

 `$ npm run start:dev`

A aplicação ficará disponível para teste e operação em `http://localhost:3000`

Obs: Ao acessar o endpoint de entrada, a documentação do usuário será mostrada por padrão, e você poderá seguir as instruções para utilização do microserviço.

### Rodando via Docker (Produção)

Recomendamos disponibilizar a aplicação para produção usando o Docker.

Obs: 1) Você vai precisar estar com o serviço Docker instalado no seu remotehost ou locahost. Os detalhes sobre instalação e operação do Docker fogem do escopo e objetivo dessa documentação. 2) Recomendamos que a aplicação rode sob SSL e em um dominio específico para o microserviço. Por exemplo: `https://api.sbf-converter.io/v1`. Para que o microserviço seja acessível nesse domínio sugerido ou em qualquer outro pela rede pública, vai ser necessário configurações de DNS, Registro de Dominio, Servidor Proxy, além de outras ações que fogem do escopo dessa documentação.

Faça o build da imagem Docker da aplicação. Enquanto estiver no diretório root do projeto, execute:

  `docker build -t conversor-sbf .`

Rode a imagem Docker, execute:

  `docker run -p 3000:3000 conversor-sbf`

Obs: A completa configuração do Container Docker com a imagem da aplicação, e os detalhes de operação e execução do Docker, fogem do escopo dessa documentação.

## Testando

Testar a aplicação para verificar por erros e falhas de configuração é crucial.

Siga os passos abaixo para rodar os testes:

a. Navegue para o diretório `test` no root do projeto.

b. Execute o comando `./jest` para rodar todos os Testes de Integração e Unitários.

Obs: 1) Você pode rodar os testes individuamente executando `npx jest target-test-file.ts`. Aonde `target-test-file.ts` é qualquer dos arquivos de testes dentro do diretório `test`. 2) Você pode dar uma olhada no arquivo `manitesto.txt` dentro de `test` para uma introdução mais detalhada sobre cada arquivo de teste.

## Logging

Esse microserviço ja têm imbutido o versátil mecanismo de Logging "Winston". O mecanismo de logging está configurado para enviar qualquer erro que ocorra na aplicação, para o `console.log` do Node. Contudo, você poderá adicionar outros destinos para o stream de erros. Por exemplo você pode enviar o stream de erros para o Amazon Cloudwatch, para um bando de dados MongoDB ou Redis, poderá salvar tudo em um arquivo ou simplesmente enviar para alguma caixa de correio monitorada. A configuração do meio de transporte e storage dos erros gerados pela aplicação foge do escopo desse documento.

## Conclusão

Esse microserviço utiliza o método de versionamento conhecido como "Rolling Release". Isso significa que a versão no Branch `main` é sempre a versão mais atualizada da aplicação. Entendemos que essa é uma maneira simples e eficaz de método de versionamento, que elimina a complexidade e a necessidade do controle e monitoramento de versões rígidas do software.

Qualquer pergunta, sugestão ou informação pode ser direcionada para [email protected]