Skip to content

antoniosb/masterclass-ci

Repository files navigation

masterclass-json-api

Behold my test coverage

codecov


O código para essa demo veio deste exercício que está no módulo de Real Life Engineering. Foi adicionado o linter de back-end e as devidas correções de lint;

Rodando o projeto

1️⃣ Instale as dependências

npm install

2️⃣ Vc pode rodar o projeto de duas formas:

  • 1️⃣ Rodando com o nodemon (recomendado)

Com o nodemon, vc não precisa ficar reiniciando o servidor a cada alteração no código.

npm run dev
  • 2️⃣ Rodando com o node
npm start

3️⃣ Acesse a API em http://localhost:3000

Rodando o linter

Para rodar o linter, execute o comando:

npm run lint

Para corrigir os erros de lint, execute o comando:

npm run lint:fix

Rodando os testes

Para rodar os testes, execute o comando:

npm test

Docker

Você também pode executar o projeto usando o Docker. Certifique-se de ter o Docker instalado no seu sistema.

Dockerfile

O projeto já possui um Dockerfile configurado para facilitar a criação da imagem Docker. Você pode personalizar o Dockerfile de acordo com suas necessidades.

Configuração Docker

1️⃣ Execute o script de setup para criar e configurar o contêiner Docker:

./docker-setup.sh

2️⃣ Use os comandos Docker para gerenciar o contêiner:

./docker-commands.sh

O script docker-commands.sh exibe um menu com as seguintes opções:

  1. Ligar a API
  2. Desligar a API
  3. Executar os testes
  4. Executar o linter

Selecione a opção desejada digitando o número correspondente.


Exemplos de chamada para a API

Essa API precisa de um token que case com a regex definida no middleware, vamos usar um genérico para os exemplos. Os dados estão em variáveis de ambiente para facilitar a execução dos comandos.

Listar os produtos

TOKEN=12345678abcdefgh; curl -X GET -H "Authorization: $TOKEN" http://localhost:3000/products

Cadastrar um produto

Create

TOKEN=12345678abcdefgh; curl -X POST -H "Authorization: $TOKEN" -H 'Content-Type: application/json' -d '{"name":"Elmo on fire","brand":"Xablau"}' http://localhost:3000/product

Buscar um produto pelo ID

Read

ID=100; TOKEN=12345678abcdefgh; curl -X GET -H "Authorization: $TOKEN" "http://localhost:3000/product/$ID"

Atualizar um produto

Update

ID=100; NAME="novo nome"; BRAND="nova marca"; TOKEN=12345678abcdefgh; curl -X PUT -H "Authorization: $TOKEN" -H 'Content-Type: application/json' -d '{"name":"'"$NAME"'","brand":"'"$BRAND"'"}' "http://localhost:3000/product/$ID"

Deletar um produto

Delete

ID=100; TOKEN=12345678abcdefgh; curl -X DELETE -H "Authorization: $TOKEN" "http://localhost:3000/product/$ID"

About

repositório usado como base para configurar um CI com Codecov + GitHub actions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published