serverless-challenge
Esse projeto é um desafio realizado em NodeJS, onde foi desenvolvida uma API utilizando TDD, Clean Architecture e Serverless.
A API utiliza o framework Serverless para subir as Lambdas e as API's Gateways para acessar as Lambdas.
O projeto tem mais ou menos 65% de coverage dos testes. Não consegui atingir 100% pois não deu tempo de fazer os testes de integração nas lambdas.
Documentação da API
Retorna todos os funcionários
GET /employees/{id?}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Opcional. ID Do funcionário |
cpf |
string |
Opcional. CPF Do funcionário |
name |
string |
Opcional. Nome Do funcionário |
Cria um funcionário
POST /employees
Parâmetro | Tipo | Descrição |
---|---|---|
name |
string |
Obrigatório. Nome Do funcionário |
role |
string |
Obrigatório. Cargo Do funcionário |
cpf |
string |
Obrigatório. CPF Do funcionário |
salary |
string |
Obrigatório. Salário Do funcionário |
age |
string |
Obrigatório. Idade Do funcionário |
Atualiza um funcionário
PATCH /employees/{id}
Ao menos um dos parâmetros devem ser passados no body.
Parâmetro | Tipo | Descrição |
---|---|---|
name |
string |
Opcional. Nome Do funcionário |
role |
string |
Opcional. Cargo Do funcionário |
cpf |
string |
Opcional. CPF Do funcionário |
salary |
string |
Opcional. Salário Do funcionário |
age |
string |
Opcional. Idade Do funcionário |
Deleta um funcionário
DELETE /employees/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. ID Do funcionário |
Rodando a aplicação
Rodando os Testes
npm run test # Roda todos testes
npm run test:coverage # Roda todos testes e gera coverage
npm run test:unit # Roda os testes unitários
npm run test:integration # Roda os testes de integração
Deploy
npm run deploy # Faz o deploy da aplicação
npm run deploy:offline # Faz o deploy local da aplicação
A aplicação está rodando no AWS Lambda e pode ser acessada pela API Gateway através do link abaixo: Employees API