Descrição

A API da nossa aplicação será desenvolvida com Springboot 3. Deste modo, a principal forma arquitetural de desenvolvimento nesse ambiente é a Spring Boot Architecture.

Justificativa

Tal estratégia de arquitetura foi escolhida dada as recomendações da documentação do Spring. A partir disso, pode-se manter uma melhor organização das camadas da aplicação, assim como manter uma boa coesão entre os diferentes tipos de classes.

Camadas - Spring Boot Architecture

diagrama-back.png

Database Layer

Define a camada onde estarão presentes os banco de dados que a aplicação se relaciona. Em nossa aplicação, esta camada será representada por um banco de dados PostgreSQL

Persistence Layer

Contém a lógica para o armazenamento no banco de dados. Em nossa aplicação, isto será aplicado por meio de repositories, que utilizaram a biblioteca do ambiente SpringSpring Data JPA” para realizar o mapeamento objeto relacional das classes de modelo.

Business Layer

Contém toda a lógica de negócio, sendo responsável pela validação e autorização. Em nossa aplicação, essa camada estará representada pelas classes de Service.

Presentation Layer

Consiste em views, sendo o responsável pela autenticação e por se comunicar com frontend da aplicação por meio de requisições HTTP, esta camada ainda é responsável por mapear objetos para JSON e vice-versa. Em nossa aplicação, esta camada será representada pelas classes de Controller.