Criando uma API com Spring Boot e Kotlin — parte 1

ronaldocoding

Ronaldo Costa de Freitas

Posted on October 29, 2022

Criando uma API com Spring Boot e Kotlin — parte 1

Existem diversas formas e ferramentas para se construir APIs, hoje inicio uma série de posts em que construo uma API simples usando Spring Boot e Kotlin para um app que eu e meus amigos criamos há um tempo.

O app Android que criamos servia para ajudar consumidores a montar PCs por meio da escolha das suas peças, como placa-mãe, processador, memória ram, etc. Como nosso app não tem um back-end próprio, o back-end é basicamente feito por meio do Firebase, então resolvi construir um back-end para ele.

A API vai ser basicamente um CRUD de um Setup, uma entidade composta por um nome e suas peças, as peças do Setup. Fazer um CRUD significa criar (Create), ler (Read), atualizar (Update) e deletar (Delete).

Nesse primeiro post nós vamos configurar e criar nosso projeto usando a ferramenta Spring Initializr do site do Spring Boot.

O que é Spring Boot?

Spring Boot é um framework Java/Kotlin que facilita a criação de aplicações Web como APIs e webservices. Ele provê de forma default servidores como o Tomcat e dependências que simplificam a configuração do build.

Nessa série de posts nós vamos usar o Spring Boot para criar uma API RESTful para um CRUD básica usufruindo de algumas dependências do Spring como a Spring Web e a Spring Data JPA.

Configurando o projeto

Para configurar o projeto, usaremos a ferramenta Spring Initializr que permite em poucos passos gerar um projeto Spring.

Ao acessarmos o site, nós deparamos que a tela de configuração completa, onde escolheremos a build tool do projeto, a linguagem, a versão do Spring Boot, os metadados do projeto, o tipo de empacotamento, a versão do Java e as dependências.

Tela de configuração do Spring Initializr

Como pode ver nosso projeto vai usar o build tool Gradle, a linguagem Kotlin, a versão 2.7.5 do Spring Boot, os metadados como Group, que representa a organização que desenvolverá o projeto e o Artifact, que se refere ao nome do projeto, é pchunter, Jar como empacotamento e versão 11 do Java.

Agora quanto as dependências do nosso projeto, vamos usar as seguinte:

  1. Spring Web: possibilita a utilização do Spring MVC e do Apache Tomcat como container default,
  2. Spring Data JPA: permite o armazenamento e a persistência de dados em SQL com a Java Persistence API usando o Spring Data e o Hibernate,
  3. HyperSQL Database: um motor leve para um banco de dados que permite o armazenamento e a persistência de dados tanto em memória quanto em arquivo, ou seja, poderemos usar um banco de dados sem a necessidade de instalar um software para isso, como o MySQL, Oracle e Postgres e
  4. DevTools: essa dependência é do próprio Spring Boot, ela serve para facilitar o processo de deploy do nosso servidor durante o desenvolvimento.

Adicionando as dependências necessárias ao projeto

Pronto, basta clicar em GENERATE e nosso projeto será baixado como .zip!

Rodando nosso projeto

Após extrair o projeto, basta abrirmos o projeto em alguma IDE que suporte desenvolvimento Web com Java/Kotlin. Eu optei pelo IntelliJ da Jetbrains porque ele dá suporte a Kotlin e Gradle de forma nativa.

Estrutura do nosso projeto no IntelliJ

Ao abrirmos o projeto, podemos ver a estrutura criada pelo Initializr como o pacote do projeto com o nosso Group como br.com.pchunter, entre outros com os arquivos do gradle e do build.

Agora, vamos analizar o arquivo .kt gerado automaticamente pelo Initializr, o PchunterApplication. Esse arquivo é a classe padrão com o intuito de rodar o Spring Boot para nós.

Note que essa classe tem a annotation @SpringBootApplication, ela serve para indicar a classe de configuração do Spring, ou seja, podemos realizar as configurações do nosso projeto a partir dessa classe.

Pronto, já podemos executar nosso projeto rodando a classe PchunterApplication:

Projeto sendo executado

Note que nosso servidor já está operando na porta 8080, ou seja, nossa aplicação já está funcionando!

Servidor Tomcat rodando na porte 8080

Ao acessarmos localhost:8080 podemos ver que o Spring Boot respondeu a requisição com um 404 porque ainda não configuramos nenhuma classe Controller para receber a requisição e responder de alguma forma.

Projeto rodando no localhost:8080

Nosso trabalho acaba por aqui 🤓

Segue repo do github:

pchunter-api

PCHunter API




Próximo post:

No próximo post vamos criar as classes referentes ao Setup e as funções de GET e POST para a nossa aplicação. Obrigado pela atenção e até a próxima!

💖 💪 🙅 🚩
ronaldocoding
Ronaldo Costa de Freitas

Posted on October 29, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related