DEV Community

Cover image for Configurando o projeto da melhor API de tabelas de campeonato que você já viu!
anastacio_dev
anastacio_dev

Posted on

Configurando o projeto da melhor API de tabelas de campeonato que você já viu!

Assumindo que você já preparou o ambiente, vá até o Spring Initializr e gere um projeto com os parâmetros da imagem abaixo:

Imagem mostra um projeto sendo gerado no Spring Initializr, com os seguintes parâmetros: Project: Maven; Language: Java; Spring Boot: 3.3.5, que é a versão fechada mais recente; preenchimento de group, artifact e name fica a seu cargo; Packaging: Jar; Java: 21; Dependencies: Spring Web <br>
e Spring Data MongoDB

Algumas considerações sobre as dependências:

  • Vou utilizar MongoDB no projeto, pois creio que faz mais sentido dado ao tipo de dado que iremos produzir. É possível utilizar um banco relacional, também. Sinta-se à vontade;
  • Ainda não vou mexer com Spring Security, pois o foco agora é a solução de negócio. No futuro, vamos trabalhar a parte de autenticação. Se você domina o Spring Security, sinta-se à vontade para decidir baixar isso agora ou não;
  • Muita gente gosta de usar Lombok para a gestão de getters e setters. Particularmente, não gosto e não vou usar. Sinta-se livre para fazer a sua escolha;
  • Também não está no escopo atual do projeto lidar com Cloud, conteinerização, orquestração, rastreamento, observabilidade e outras coisas relacionadas a infraestrutura e SRE, por isso não estou baixando nada relativo a esses assuntos. Mais uma vez, sinta-se à vontade para montar a stack que você se sentir confortável.

Uma vez o projeto baixado, unzipado, dependências instaladas e com o "Hello World" rodado, crie os pacotes abaixo:

Print mostrando uma árvore com os pacotes que devem ser criados em nomeDoProjeto/source/main/java/com.Tabelao/: controller, model, repository, service

Se você estiver atento, se lembrará que essas pastas estão batendo com o nosso desenho arquitetural feito em um capítulo anterior, exceto pelo "View", que é o front-end e ainda não trararemos.

Sendo assim, podemos relembrar a utilidade de cada pacote:

  • Model: onde criaremos os nossos modelos, ou classes de objetos;
  • Repository: onde ficará a nossa interface com o banco de dados (leia sobre padrão ODM)
  • Service: onde ficará nossa lógica de negócio, como a geração da tabela e agendamento de jogos, além das validações de dados de entrada e saída;
  • Controller: onde cuidaremos dos endpoints (ou rotas, URLs, URIs, links) de requisição e resposta. É o que chamamos informalmente de API.

No próximo texto tem código. Eu juro! :)

Prosseguimos!

Top comments (0)