Disclaimer: Arquitetura é sempre um assunto polêmico. Há quem defenda que tudo isso caberia bem em um JSP e há quem diga que tudo tem que estar em microsservicos. Nem tão ao céu, nem tão ao inferno: optei aqui por um MVC, que creio que atende bem as expectativas. Vale lembrar que o objetivo principal desse projeto é educativo, então não estou considerando os custos e benefícios de qualquer abordagem considerando a exposição dessa solução ao usuário final. Nesses casos, precisaríamos de outras análises, que não cabem aqui.
Daqui pra frente, estou assumindo que você tem conhecimentos suficientes em Java e Spring para prosseguirmos. E dentro da grande caixa de ferramentas que é o Spring, você deve ter se deparado com o Spring MVC.
O Spring MVC pertence ao Spring Framework e implementar aplicações web utilizando a arquitetura MVC.
Assumindo também que você conhece este padrão (caso não conheça, estou deixando links para tudo isso no fim do texto), serei sucinto: a arquitetura MVC divide nossa aplicação em três camadas:
- Model (M), onde fica as nossas classes, ou modelos;
- View (V), onde fica o nosso front-end. Note que este projeto vai apenas entregar a API. Não pretendemos (ainda) abordar o front-end.
- Controller (C), onde os endpoints da nossa API serão expostas.
Abaixo, um desenho arquitetural do nosso aplicativo, utilizando o padrão MVC bem simplificado:
Para os nosso propósitos, vamos adicionar as camadas de Serviço, que vai abrigar a lógica de negócio, deixando o Controller apenas para tratar a exposição dos endpoints; e vamos adicionar uma camada de Repositório, para lidar com a persistência utilizando uma ORM.
Na prática, fica assim:
Acho que no próximo capítulo já podemos começar com ele... O CÓDIGO!
Prosseguimos!
Leituras complementares:
Top comments (0)