Introdução: REST API em Java é mais fácil do que parece
O desenvolvimento de REST API é uma das habilidades mais requisitadas no desenvolvimento backend moderno. Java, graças à sua confiabilidade e enorme ecossistema, continua sendo líder na criação de APIs industriais. Muitos iniciantes acham que escrever uma REST API em Java é difícil e demorado. Na verdade, com a ferramenta certa (Spring Boot), você pode criar um serviço funcional em 30 minutos.
Neste artigo, vamos analisar na prática como criar rapidamente uma REST API completa em Java. Escreveremos uma pequena aplicação para gerenciar uma lista de livros, que suporta operações CRUD padrão: criação, leitura, atualização e exclusão de registros. Todo o código estará pronto para execução, e você poderá testá-lo através do Postman ou navegador.
1. Preparação do projeto e configuração do Spring Boot
A maneira mais rápida de criar um projeto é usar o Spring Initializr. Este é o gerador oficial que cria um esqueleto de projeto com as dependências necessárias.
1.1. Geração do projeto
Acesse start.spring.io e selecione:
- Project: Maven (ou Gradle)
- Language: Java
- Spring Boot: última versão estável (ex: 3.2.x)
- Group: com.example
- Artifact: bookapi
Adicione as dependências:
Spring Web— para criar REST controllersSpring Data JPA— para trabalhar com banco de dadosH2 Database— banco de dados embutido para testes
Clique em "Generate", baixe o arquivo zip e descompacte-o. Abra o projeto no IntelliJ IDEA ou qualquer outra IDE.
1.2. Estrutura do projeto
Após abrir o projeto, você verá a seguinte estrutura:
bookapi/├── src/│ ├── main/│ │ ├── java/com/example/bookapi/│ │ │ ├── BookapiApplication.java│ │ │ ├── controller/│ │ │ ├── model/│ │ │ └── repository/│ │ └── resources/│ │ └── application.properties│ └── test/└── pom.xmlCrie os pacotes controller, model e repository manualmente — isso facilitará a navegação.
2. Criação do modelo de dados e repositório
Vamos começar com o modelo — a classe que descreve a entidade "Livro".
2.1. Classe Book (Model)
Crie o arquivo Book.java no pacote model:
package com.example.bookapi.model;
import jakarta.persistence.*;
@Entity@Table(name = "books")public class Book {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id;
@Column(nullable = false) private String title;
@Column(nullable = false) private String author;
private int year;
public Book() {}
public Book(String title, String author, int year) { this.title = title; this.author = author; this.year = year; }
// Getters e Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; }
public String getTitle() { return title; } public void setTitle(String title) { this.title = title; }
public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; }
public int getYear() { return year; } public void setYear(int year) { this.year = year; }}2.2. Repositório (Repository)
Crie a interface BookRepository.java no pacote repository:
package com.example.bookapi.repository;
import com.example.bookapi.model.Book;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;
import java.util.L