DEV Community

Cover image for Criando uma API com Spring Boot e Kotlin — parte 1
Ronaldo Costa de Freitas
Ronaldo Costa de Freitas

Posted on • Edited on

10

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.

package br.com.pchunter
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class PchunterApplication
fun main(args: Array<String>) {
runApplication<PchunterApplication>(*args)
}

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!

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)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

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

Okay