-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnotes.txt
110 lines (92 loc) · 4.56 KB
/
notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
Estrutura de pastas:
src -
nesta pasta estarão todos os arquivos principais de nossa palicação
env -
esta pasta guarda os arquivos de verificação de variaveis de ambiente.
dist -
aqui estão os arquivos transpilados de nossa aplicação
build -
aqui esta nossa aplicação pronta para produção
lib -
aqui estão todas as bibliotecas de terceiros que estamos utilizando em nosso projeto
test -
aqui estão todos nossos arquivos de teste
http -
aqui fica tudo relacionado aos metodos http como por exemplo requisicoes, retornos
controller -
aqui estão todos os arquivos responsáveis por lidar com solicitacoes e retornar respostas http ao cliente
services || use-cases
aqui estão todos os nossos arquivos responsaveis pela logica da operacão
aqui devemos abstrair toda a logica sem que mudancas no projeto interfiram nelas. Elas precisam ser independentes.
Assim sendo possivel utilizalas em qualquer parte do projeto sem intereferencia externa.
repository -
aqui estão todos os arquivos responsáveis por nossa interacao com o banco de dados.
operacoes como criar, selecionar, atualizar, deletar.... metodos http que fazem interacao com nosso DB.
---------------------------------------------------------------------------------------------------------------------
Arquivos:
.npmrc -
neste arquivo adicionamos a configuração --save-exact=true
se possivel, criar este arquivo antes da instalação de qualquer dependencia.
ele é responsável por instalar a versão exata que estamos utilizando neste exato momento, caso nos mesmos ou alguém
baixe nosso projeto futuramente.
app.ts && server.ts -
dividimos estes arquivos para melhorar a utilização do app = fastify()
também poderia ser feito caso estivessemos utilizando Express neste projeto.
Desta forma conseguimos importar a variavel app para outros arquivos, sem que precisemos iniciar o servidor
em outro arquivo que não seja o server.ts
Esta configuração também facilita a criação de plugins do fastify (functions) como ex: app.register
________________________________________________________________________________________
Notes:
Docker -
Neste projeto foi utilizada a imagem bitnami/postgresql
Comandos da cli:
docker run
--name 'nome de nossa imagem'
-p 5432:5432 (apontando para a porta 5432, porta padrão postgree para nossa maquina.)
-e (configurando variaveis de ambiente. Antes de cada variável precisamos passar este parametro.)
POSTGRESQL_USERNAME=docker (nosso usuário no DB.)
POSTGRESQL_PASSWORD=docker (nosso pwd no DB.)
POSTGRESQL_DATABASE=apisolid (nome de nosso DB.)
bitnami/postgresql:latest (imagem que queremos utilizar.)
Comando na cli:
docker run --name api-solid-pg -p 5432:5432 -e POSTGRESQL_USERNAME=docker -e POSTGRESQL_PASSWORD=docker -e POSTGRESQL_DATABASE=apisolid bitnami/postgresql:latest
(O comando acima cria e inicia nossa imagem docker)
(Com a imagem criada e rodando, podemos acessar nosso DB de um SGBD)
docker ps (mosta todas as imagens rodando atualmente.)
docker ps -a (mostra todas as imagens do docker.)
docker stop 'nome da imagem: api-solid-pg ou id gerado' (isso para nossa imagem.)
docker start 'nome da imagem: api-solid-pg ou id gerado' (isso inicia nossa imagem.)
docker rm 'nome da imagem: api-solid-pg ou id gerado' (isso remove nossa imagem.)
Docker-compose -
version: '3.8'
services:
api-solid-pg:
image: bitnami/postgresql:latest
ports:
- 5432:5432
environment:
- POSTGRESQL_USERNAME=docker
- POSTGRESQL_PASSWORD=docker
- POSTGRESQL_DATABASE=apisolid
version: (versão docker compose. Até o momento a última versão é a 3.8)
services: (serviços que vamos rodar no docker)
nome da imagem
image: (imagem que utilizaremos)
ports:
- (portas do banco de dados. Explicação sobre portas na descrição docker acima.)
environment:
- (variaveis de ambiente para rodar nossa imagem docker)
Prisma -
para utilizarmos o prisma instalamos como dev dependencies
npm install prisma -D
npm isntall typescript ts-node @types/node (recomendado pela documentação para utilizacao com ts)
Para inicialização do prisma com um provider sqlite,
npx prisma init --datasource-provider sqlite
podemos mudar o provider manualmente ou passando na cli acima.
Podemos escolher rodar o comando:
npx prisma generate
Este comando instala por baixo dos panos @prisma/client
Ou podemos configurar nossa models no arquivo schema.prisma e rodar:
npx prisma migrate dev (nome de nossa migrate)
SGBD prisma:
npx prisma studio