DEV Community

Cover image for Definindo a arquitetura da melhor API de tabela de campeonato que você já!
anastacio_dev
anastacio_dev

Posted on

Definindo a arquitetura da melhor API de tabela de campeonato que você já!

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:

Arquitetura do Tabelão, seguindo o padrão MVC puro

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:

Diagrama arquitetural da nossa aplicação, utilizando como base o padrão MVC e adicionando as camadas de serviço e repositório

Acho que no próximo capítulo já podemos começar com ele... O CÓDIGO!

Prosseguimos!


Leituras complementares:

Top comments (0)