https://github.com/walysongo/client-api-with-dynamodb
Este é um serviço de API REST para realizar operações CRUD em clientes. O projeto foi desenvolvido utilizando Node.js, TypeScript, Jest para testes e Serverless Framework para deploy.
https://github.com/walysongo/client-api-with-dynamodb
docker docker-compose dotenv dynamodb dynamodb-local jest nodejs nvm serverless serverless-framework typescript
Last synced: 3 months ago
JSON representation
Este é um serviço de API REST para realizar operações CRUD em clientes. O projeto foi desenvolvido utilizando Node.js, TypeScript, Jest para testes e Serverless Framework para deploy.
- Host: GitHub
- URL: https://github.com/walysongo/client-api-with-dynamodb
- Owner: WalysonGO
- Created: 2025-01-20T23:24:33.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-21T02:43:29.000Z (about 1 year ago)
- Last Synced: 2025-04-30T22:54:27.955Z (11 months ago)
- Topics: docker, docker-compose, dotenv, dynamodb, dynamodb-local, jest, nodejs, nvm, serverless, serverless-framework, typescript
- Language: TypeScript
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Client API
Este é um serviço de **API REST** para realizar operações CRUD em clientes. O projeto foi desenvolvido utilizando **Node.js**, **TypeScript**, **Jest** para testes e **Serverless Framework** para deploy.
## Requisitos
- **Node.js**: O projeto requer a versão `>=20.x`.
- **Docker**: Para rodar o DynamoDB localmente.
- **Serverless Framework**: Para deploy e execução offline.
## Configuração do Ambiente
### Usando Docker para DynamoDB Local
1. **Clonar o repositório**:
Primeiro, clone o repositório para o seu ambiente local.
```bash
git clone https://github.com/WalysonGO/client-api-with-dynamodb.git
cd client-api-with-dynamodb
```
2. **Rodando DynamoDB Local com Docker Compose**:
O Docker Compose é usado para rodar o DynamoDB localmente. Para iniciar o serviço, execute:
```bash
docker compose up -d
```
Isso iniciará o DynamoDB Local e configurará o banco de dados para ser utilizado pelo seu serviço.
3. **Verificando os containers em execução**:
Para verificar se os containers estão ativos, execute:
```bash
docker ps
```
Você deve ver o DynamoDB Local rodando no seu ambiente.
### Usando NVM (Node Version Manager)
1. **Instalar a versão correta do Node.js**:
O projeto utiliza a versão do Node.js especificada no arquivo `.nvmrc`. Para garantir que você está usando a versão correta do Node.js, execute:
```bash
nvm install
```
2. **Usar a versão do Node.js**:
Para configurar o Node.js para a versão correta, execute:
```bash
nvm use
```
Isso definirá a versão do Node.js para a especificada no arquivo `.nvmrc`.
## Instalando as Dependências
Com o ambiente configurado, instale as dependências do projeto:
```bash
npm install
```
## Comandos
### Iniciar o Ambiente de Desenvolvimento
Para iniciar o serviço localmente utilizando o **Serverless Offline**, execute:
```bash
npm run dev
```
Isso iniciará o servidor offline, permitindo que você faça chamadas HTTP para o seu serviço localmente.
### Compilação do TypeScript
Para compilar o código TypeScript, execute:
```bash
npm run compile
```
### Rodar os Testes
#### Rodar todos os testes:
Para executar todos os testes do projeto, incluindo compilação e execução do Jest, execute:
```bash
npm run test
```
#### Rodar apenas os testes unitários:
Se você quiser rodar apenas os testes unitários, execute:
```bash
npm run unit
```
#### Rodar os testes com cobertura:
Para rodar os testes e gerar um relatório de cobertura de código, execute:
```bash
npm run test:coverage
```
#### Rodar os testes em modo de observação:
Para rodar os testes em modo de observação (quando você modifica o código, os testes são executados automaticamente), execute:
```bash
npm run test:watch
```
### Deploy
Para realizar o deploy do serviço para a AWS, utilize o comando:
```bash
npm run deploy
```
Isso irá fazer o deploy utilizando o **Serverless Framework**, considerando as configurações do arquivo `serverless.yml`.
## Estrutura do Projeto
- **src/models**: Contém as definições dos modelos (ex. `Client`).
- **src/services**: Contém a lógica de negócios (ex. `ClientService`).
- **src/utils**: Contém utilitários como o `DBManager`.
- **tests**: Contém os testes do projeto.
## Licença
Este projeto está licenciado sob a **MIT License** - veja o arquivo [LICENSE](LICENSE) para mais detalhes.
### Resumo dos Pontos Importantes:
- **Docker**: Para rodar o DynamoDB localmente, basta executar `docker compose up -d`.
- **NVM**: Para garantir que você está utilizando a versão correta do Node.js, use `nvm install` e `nvm use`.
- **Comandos**:
- `npm run dev`: Inicia o servidor local com o Serverless Offline.
- `npm run test`: Executa os testes com Jest.
- `npm run deploy`: Realiza o deploy para a AWS com o Serverless Framework.
Esse `README.md` agora cobre a configuração do ambiente, os comandos para rodar o serviço, os testes e o deploy.