Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/maestropravaler/produtos-api
https://github.com/maestropravaler/produtos-api
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/maestropravaler/produtos-api
- Owner: MaestroPravaler
- Created: 2022-09-20T00:11:53.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2022-09-20T03:52:13.000Z (about 2 years ago)
- Last Synced: 2023-08-27T04:26:16.957Z (about 1 year ago)
- Language: TypeScript
- Size: 399 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NestJS (Primeiras Impressões)
O Objetivo deste curso é desenvolver uma API simples com a utilização do framework NestJS e TypeScript. Trabalho baseado no curso da Alura sobre o tema.
![](assets/images/titulo.png)
## Conhecendo o NestJS
1. Instalando o NestJS
```
npm i -g @nestjs/cli
```2. Inicializando nosso projeto
```
nest new produtos-api
```3. Removendo diretórios desnecessários
4. Criando o controller src/produtos.controler.ts
5. Implementando os Métodos GET | POST | PUT | DELETE
6. Testando as rotas api.http
## Models
1. Implementando os Models src/produtos.model.ts
2. Criando dados estáticos para nossos produtos
3. Fazendo que nossos controllers consumam e retornem nossos produtos.
## Services
1. Criando o Service src/produtos.service.ts
2. O Nest utiliza o conceito de providers (classes que podem ser injetadas dentro de outras),
assim adicionamos ao nosso service o decorator @Injectable3. Refatorando o controller de produtos
4. Inserido o ProdutosService no arquivo src/app.module.ts na opção provider.
5. Injeção de Dependência : Coloca na classe que se pretende injetar o decorator @Injectable
e no módulo principal onde iremos utilizar no array de providers devemos importar aquela classe. (Inspirado no Angular).Injeção de dependência é um padrão de projeto que auxilia a manter um baixo padrão de acoplamento entre classes. No nosso caso delegamos a responsabilidade de criar e fornecer um objeto para o framework.
## Integração com o banco de dados
1. Busca na documentação do NestJS o módulo Sequelize.
2. Instalando o Sequelize
```
npm install --save @nestjs/sequelize sequelize sequelize-typescript mysql2
npm install --save-dev @types/sequelize
```
3. Configurando o banco de dados src/app.module.ts4. Adequando o Model para o Sequelize src/produtos.model.ts
5. Rodando o projeto, criando a tabela e os campos.
## Alterando o Service e configuração final do projeto.
1. Alterando o Service src/produtos.service.ts
2. Configurando o Controller
3. Inserindo dados no banco.
4. Testes finais com um CRUD completo.
5. Modificando as configurações do projeto (pacote vindo dotenv - nodejs)
```
npm i --save @nestjs/config
```
- No arquivo src/app.module.ts colocar a configuração ConfigModule.forRoot()
- Criar o arquivo .env na raiz do projeto