... | @@ -37,3 +37,37 @@ Para a arquitetura de desenvolvimento do Front-end da aplicação, foram criadas |
... | @@ -37,3 +37,37 @@ Para a arquitetura de desenvolvimento do Front-end da aplicação, foram criadas |
|
|
|
|
|
|
|
|
|
# Modelo da Arquitetura usada no Back-end
|
|
# Modelo da Arquitetura usada no Back-end
|
|
|
|
|
|
|
|
Para a arquitetura de desenvolvimento do Back-end da aplicação, foram criadas as seguintes pastas:
|
|
|
|
|
|
|
|
1. domain: A camada de domínio contém a lógica de negócios pura, focada em representar conceitos centrais da aplicação sem dependências de tecnologias externas. As pastas dentro dela estão organizadas da seguinte forma:
|
|
|
|
|
|
|
|
1.1. entities: Aqui ficam as entidades principais do domínio. Elas são representações dos objetos de negócios e definem a estrutura e comportamento dos dados essenciais da aplicação. As entidades não contêm lógica técnica de persistência, apenas lógica de negócios. Exemplo: classes que representam usuários, produtos, etc.
|
|
|
|
|
|
|
|
1.2. Enum: Objetos de valor são conceitos do domínio que são imutáveis e comparados pelo valor. Eles não têm identidade própria, ou seja, se dois objetos têm os mesmos valores, são considerados iguais. São usados para representar conceitos que não mudam ao longo do tempo.
|
|
|
|
|
|
|
|
1.3. repositories: Nesta pasta ficam as interfaces que representam abstrações para o acesso e manipulação de dados. Elas permitem interagir com fontes de dados sem acoplar a lógica de negócios à infraestrutura. São implementadas na camada de infraestrutura.
|
|
|
|
|
|
|
|
2. application: A camada de aplicação é responsável por coordenar e orquestrar as operações do sistema, garantindo que os casos de uso sejam executados de acordo com as regras de negócio definidas na camada de domínio. As subpastas incluem:
|
|
|
|
|
|
|
|
2.1. dtos: Data Transfer Objects (DTOs) são usados para transferir dados entre diferentes camadas ou sistemas. Eles são representações simplificadas de entidades, voltadas para a comunicação, especialmente entre o back-end e o front-end.
|
|
|
|
|
|
|
|
2.2. services: Os serviços da aplicação contêm a lógica para coordenar os casos de uso do sistema. Eles são responsáveis por implementar os fluxos de trabalho da aplicação, garantindo a execução correta das operações de negócio.
|
|
|
|
|
|
|
|
3. infrastructure: A camada de infraestrutura cuida dos detalhes técnicos, como persistência de dados, autenticação e configurações de integração com sistemas externos. As pastas são organizadas da seguinte maneira:
|
|
|
|
|
|
|
|
3.1. persistence: Aqui ficam as implementações de persistência de dados. Dentro dela:
|
|
|
|
|
|
|
|
3.1.1. jpa: Contém classes e configurações específicas do JPA (Java Persistence API), incluindo as entidades JPA que são mapeadas para as tabelas do banco de dados.
|
|
|
|
|
|
|
|
3.1.2. repositories: Aqui ficam as implementações das interfaces de repositório definidas na camada de domínio. Essas implementações conectam-se ao banco de dados ou outros sistemas de armazenamento para manipular dados.
|
|
|
|
|
|
|
|
3.2. security: Essa pasta contém as classes e configurações relacionadas à segurança da aplicação, como o controle de autenticação e autorização via JWT (JSON Web Token).
|
|
|
|
|
|
|
|
3.3. config: Contém arquivos e classes que centralizam as configurações gerais da aplicação, como integrações, mapeamentos automáticos e documentação da API.
|
|
|
|
|
|
|
|
4. presentation: A camada de apresentação é responsável pela interação entre o usuário e o sistema, geralmente por meio de controladores REST que expõem os endpoints da aplicação. É organizada da seguinte forma:
|
|
|
|
|
|
|
|
4.1. controllers: Ficam os controladores que lidam com as requisições HTTP recebidas da interface do usuário ou de sistemas externos. Eles chamam os serviços da camada de aplicação e retornam os dados apropriados em formato JSON ou XML.
|
|
|
|
|
|
|
|
Application.java: É a classe principal da aplicação, responsável por inicializar o Spring Boot e configurar o ambiente de execução. |
|
|
|
\ No newline at end of file |