- Exemplo de arquitetura limpa seguindo os conceito do livro Clean Architecture do autor Robert Cecil Martin.
-
Requisitos/sr
-
- Conexão com internet
-
Instalação[dentro do diretório via terminal]:
-
- Copie/Baixe este respositorio GitHub para sua máquina.
-
- Extecute
npm install
via terminal no diretório do projeto
- Extecute
-
Execução desta aplicação [dentro do diretório via terminal]:
-
- Colocar o Nest.js em execução execute no terminal:
npm run start:dev
- Colocar o Nest.js em execução execute no terminal:
-
- Com isso você terá o backend Nest Rodando e então podera acessar http://localhost:3000/ e ver a tela inicial, http://localhost:3000/route para visualizar as rotas e http://localhost:3000/routes para ver todas
-
- Esse endpoint criado responde a
GET
ePOST
então podemos usar algumas ferramentas para ver ou incluir dados. Usamos aqui o ./api.http que com a extensão do VS code que permite fazerGET/POST
ao abrir o arquivo ./api.httpVemos aqui a baixo como fazer a requisição REST API
- Esse endpoint criado responde a
- Tecnologias usadas no projeto
-
- NodeJS | TS | ExpressJS | NestJS | TypeORM
Ler mais
Padrões relacionados
Adaptador:
O livro ''Design Patterns'' contém uma descrição do padrão genérico ''Adapter'': "Converter a interface de uma classe em outra interface que os clientes esperam". O padrão de portas e adaptadores é um uso particular do padrão ''Adaptador''. Model-View-Controller: (Controladora de visualização de modelo) O padrão MVC foi implementado já em 1974 no projeto Smalltalk. Tem sido dado, ao longo dos anos, muitas variações, como Model-Interáctor e Model-View-Presenter. Cada um deles implementa a ideia de portas e adaptadores nas portas primárias, não nas portas secundárias.-
Regras de neǵocio consolidadas
-
- Arquivo com a entidade
/back_end/src/@core/domain/route.entity.ts
As as regras de negócio, validações
- Arquivo com a entidade
-
-
-
/back_end/src/@core/domain/route.entity.spec.ts
Todas regras devem ter testes unitários para ser seguro
-
-
-
Modelagem de dados
- Arquivo com caso de uso /back_end/src/@core/application/create_route.use_case.ts
O caso de uso, por exemplo os tipos de input e output, obriga informa a entrada de alguns dados cruciais para o funcionamento
CreateRouteInput
nesta aplicação é a porta do caso de uso The Pattern: Ports and Adapters (‘’Object Structural’’) como diz no link. Desta forma aINFRA, PRESENTERS & REPOSITORIES
vai precisar se adpatar aos casos de uso e nunca o inverso.Permitir que um aplicativo seja igualmente conduzido por usuários, programas, scripts automatizados de teste ou em lote, e seja desenvolvido e testado isoladamente de seus eventuais dispositivos e bancos de dados de tempo de execução.
- Arquivo com a infra
/back_end/src/@core/infra/http/express/index.ts
A infra, aqui onde vamos usar para passar os dados da requisição da entidade usando os casos de uso
Utlizamos a extensão
REST Client ->/ @ext:humao.rest-client
para testar o POST na aplicação. - Expres.js
-
- Framework Node, usado para habilitar uma aplicação web e usar a nossa aplicação.
Com ele fizemos
GET
&POST
nas rotas. Arquivo com fontes aqui
- Framework Node, usado para habilitar uma aplicação web e usar a nossa aplicação.
- NestJS
-
- NestJS é um framework Node.js destinado ao desenvolvimento de aplicativos do lado do servidor. NestJS faz uso do framework Express.js, sendo também compatível com o Fastify. Sua arquitetura é fortemente inspirada no Angular.