Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added semana20/aula3/tarefa5/lambda.zip
Binary file not shown.
2 changes: 2 additions & 0 deletions semana20/aula4/backend/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
AWS_ACCESS_KEY: AKIAIVMUF3BDD43QQKDA
AWS_SECRET_ACCESS_KEY: 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
3 changes: 3 additions & 0 deletions semana20/aula4/backend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/node_modules
/build
lambda.zip
50 changes: 50 additions & 0 deletions semana20/aula4/backend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# LAMBDA + API GATEWAY + EXPRESS TEMPLATE

## EM QUAIS ARQUIVOS É PROIBIDO MEXER?

Não mexa nesses arquivos:

1. `src/lambda/*` (ou seja, em nenhum arquivo dentro dessa pasta)
1. `src/local/*` (ou seja, em nenhum arquivo dentro dessa pasta)

## Rodando localmente

Use o comando:

```
npm run start:dev
```

## Deploy em uma Lambda

Você deve começar criando um build do projeto

```
npm run build
```

Então, subir o arquivo compactado `lambda.zip` que foi gerado nesse processo na função de Lambda que você quiser usar

## Como eu crio um novo endpoint?

Esse projeto é baseado em uma arquitetura em camadas, divida em três:

- Business: contém todas as lógicas de negócio e a modelagem dos dados
principais

- Data: responsável pela comunicação no banco que, neste caso, é um MySQL

- Presentation: cuida de transformar os dados de entrada e saída nos modelos
apropriados

Quando for criar um endpoint, certifique-se que passou por todos esses passos:

[] Verifique se precisará criar uma nova entidade ou modificar alguma já existente.
Uma entidade é um modelo que representa alguma informação na nossa regra de negócios (`src/business/entity`)

[] Comece criando o use case com o nome apropriado na pasta `src/business/usecase`.
Lembre-se de criar um novo Gateway (`src/business/gateway`) ou alterar algum existente se precisar se comunicar com o banco, já que utilizamos inversão de dependências

[] Realize as implementações do banco necessárias alterando alguma classe já existente (`src/data`). Se for mexer com uma tabela nova, crie uma nova classe na pasta que seja filha da classe `BaseDatabase` e implemente ao menos algum Gateway

[] Crie um novo endpoint na presentation em `src/presentation/endpoint` e, então, crie uma nova rota do express no arquivo `src/presentation/routes`
8 changes: 8 additions & 0 deletions semana20/aula4/backend/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module.exports = {
roots: ['<rootDir>/src'],
transform: {
'^.+\\.tsx?$': 'ts-jest',
},
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
}
Loading