Introdução: API REST é mais simples do que parece
\nMuitos desenvolvedores iniciantes acham que escrever uma API REST em Java é uma tarefa difícil, que exige conhecimento profundo e longas horas de trabalho. Na verdade, com ferramentas modernas como Spring Boot, você pode criar um serviço RESTful completo em apenas 30 minutos. Neste artigo, vamos analisar na prática como escrever uma API REST em Java, usando um conjunto mínimo de ferramentas. Você receberá um modelo pronto que poderá adaptar aos seus projetos.
\nREST (Representational State Transfer) é um estilo arquitetural que permite que clientes e servidores troquem dados via HTTP. Criaremos uma API simples para gerenciar uma lista de tarefas (To-Do). Ao final do artigo, você terá um servidor funcional que sabe criar, ler, atualizar e excluir tarefas (CRUD).
\n\nPasso 1: Preparação do ambiente e criação do projeto
\nPara começar, precisaremos de:
\n- \n
- Java Development Kit (JDK) versão 17 ou superior. \n
- IntelliJ IDEA (Community Edition) ou qualquer outra IDE. \n
- Maven para gerenciamento de dependências. \n
- Postman ou navegador para testes. \n
Criaremos um projeto usando o Spring Initializr (start.spring.io). Selecione as seguintes configurações:
\n- \n
- Project: Maven \n
- Language: Java \n
- Spring Boot: 3.2.x \n
- Dependencies: Spring Web, Spring Data JPA, H2 Database \n
Baixe o arquivo ZIP e descompacte-o. Abra o projeto na IDE. A estrutura será assim:
\nsrc/\n └── main/\n ├── java/com/example/restapi/\n │ ├── RestapiApplication.java\n │ ├── controller/\n │ ├── model/\n │ └── repository/\n └── resources/\n └── application.properties\nEsta é a base com a qual começaremos. A preparação levou apenas 2 minutos.
\n\nPasso 2: Criação do modelo de dados e do repositório
\nVamos começar pelo modelo. Crie a classe Task.java na pasta model. Esta será a entidade que representa uma tarefa:
package com.example.restapi.model;\n\nimport jakarta.persistence.*;\n\n@Entity\n@Table(name = "tasks")\npublic class Task {\n @Id\n @GeneratedValue(strategy = GenerationType.IDENTITY)\n private Long id;\n\n @Column(nullable = false)\n private String title;\n\n private boolean completed;\n\n // Construtores\n public Task() {}\n\n public Task(String title, boolean completed) {\n this.title = title;\n this.completed = completed;\n }\n\n // Getters e Setters\n public Long getId() { return id; }\n public void setId(Long id) { this.id = id; }\n public String getTitle() { return title; }\n public void setTitle(String title) { this.title = title; }\n public boolean isCompleted() { return completed; }\n public void setCompleted(boolean completed) { this.completed = completed; }\n}\nAgora vamos criar o repositório. Na pasta repository, crie a interface TaskRepository.java:
package com.example.restapi.repository;\n\nimport com.example.restapi.model.Task;\nimport org.springframework.data.jpa.repository.JpaRepository;\nimport org.springframework.stereotype.Repository;\n\n@Repository\npublic interface TaskRepository extends JpaRepository<Task, Long> {\n // JpaRepository já fornece todos os métodos CRUD básicos\n}\nNesta etapa, descrevemos a estrutura de dados e a forma de interação com o banco. O Spring Data JPA criará automaticamente a tabela no H2 e fornecerá os métodos findAll(), save(), deleteById() e outros. Isso economizará horas de codificação manual.
Passo 3: Criação do controlador com endpoints REST
\nAgora a parte mais interessante — o controlador. Na pasta controller, crie a classe TaskController.java. Ela processará as requisições HTTP:
Blogs
Book Recommendations
Leia também
Utilitários CLI em C#: da ideia à ferramenta pronta em uma noite
Cliente HTTP em PHP: fazendo requisições corretamente de A a Z
Por que strings aleatórias imprimem "hello world"? Análise e melhores práticas Java 2025
Testes de Integração C# com Docker: Guia Completo
C# em 2025: visão geral dos novos recursos do .NET e da linguagem