/api-favored

API desenvolvida para fins de estudo/teste, onde é necessário gerenciar uma base de Favorecidos em REST.

Primary LanguageTypeScript

NodeJS logo


API desenvolvida para fins de estudo/teste, onde é necessário gerenciar uma base de Favorecidos em REST.

A aplicação foi estruturada com padrões SOLID e organizada com modelo package by feature.

A linguagem usada para o desenvolvimento foi Node, utilizando o framework Express. Também foi utilizado TypeScript & MySQL como database.

Exemplos

Listar todos os registros

curl --request GET \
     --url 'https://api-favored.herokuapp.com/favoreds?page=1&orderByKey=cpf&orderBy=DESC' \
     --header 'Content-Type: application/json'

Busca informações dos registros

Campos de busca: "Nome", "CNPJ/CPF", "Agência" ou "Conta corrente"

curl --request GET \
     --url 'https://api-favored.herokuapp.com/favoreds?search=julio' \
     --header 'Content-Type: application/json'

Adiciona um novo registro

curl --request POST \
     --url https://api-favored.herokuapp.com/favoreds \
     --header 'Content-Type: application/json' \
     --data '{
         "name": "julio",
         "email": "julio@rosseti.xyz",
         "cnpj": 12345678912345,
         "status": "draft",
         "bankCompe": "237",
         "bankAgency": "1",
         "bankAgencyDigit": "",
         "bankAccountType": "CONTA_POUPANCA",
         "bankAccountNumber": "1234555",
         "bankAccountDigit": "2"
     }'

Atualiza um registro existente

curl --request PUT \
     --url https://api-favored.herokuapp.com/favoreds/20a2bbfc-3e5c-43e1-9191-4870f6ae167e \
     --header 'Content-Type: application/json' \
     --data '{
         "name": "julio",
         "email": "juliorosseti@gmail.com",
         "cnpj": 12345678912345,
         "status": "draft",
         "bankCompe": "001",
         "bankAgency": "313",
         "bankAgencyDigit": "4",
         "bankAccountType": "CONTA_POUPANCA",
         "bankAccountNumber": "1234",
         "bankAccountDigit": "2"
     }'

Deleta um registro existente

curl --request DELETE \
     --url https://api-favored.herokuapp.com/favoreds \
     --header 'Content-Type: application/json' \
     --data '{
         "uuid": ["8f116857-5110-4cbb-ba75-208ff096e134"]
     }'

Pré configuração

A aplicação utiliza conexão com o banco de dados MySQL, por esse motivo, é necessário duplicar o arquivo .env.local para .env e alterar as configurações necessárias.

Configuração

A aplicação utiliza o Yarn para gerenciamento de suas dependências.

Você pode instalar o Yarn através do comando abaixo:

npm i -g yarn

Necessário Node >= 16

Após a instalação e configuração da API, realize a instalação das dependências da aplicação.

Utilize o comando abaixo para realizar a instalação das dependências

yarn install

Criando a estrutura no banco:

npx sequelize db:migrate

Adicionando registros 'fakes' para popular a base com 30 registros

npx sequelize db:seed:all

Scripts disponíveis

Executar a aplicação em modo de desenvolvimento

Uma janela do navegador se abrirá com a aplicação rodando no endereço http://localhost:3333.

Toda alteração executada no código resultará no recarregamento da página.

yarn start

Executar a suíte de testes

Executa a suíte de testes da aplicação em modo iterativo. (ainda não finalizado)

yarn test:watch