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!

Image of Docusign

Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay