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:

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up