lbn-lambda-express v0.1.10
LAMBDA + API GATEWAY + EXPRESS TEMPLATE
EM QUAIS ARQUIVOS É PROIBIDO MEXER?
Não mexa nesses arquivos:
src/lambda/*(ou seja, em nenhum arquivo dentro dessa pasta)src/local/*(ou seja, em nenhum arquivo dentro dessa pasta)
Rodando localmente
Use o comando:
npm run start:devDeploy em uma Lambda
Você deve começar criando um build do projeto
npm run buildEntã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