API REST Spring Boot: como criar uma do zero

Se você busca criar uma API REST Spring Boot, chegou ao lugar certo. O Spring Boot é um dos frameworks mais utilizados no desenvolvimento de APIs em Java, graças à sua simplicidade, produtividade e integração com o ecossistema Spring.

Neste artigo, você aprenderá o que é, como funciona e como criar sua própria API REST do zero, de forma prática e eficiente.

O que é uma API REST Spring Boot?

Uma API REST é uma aplicação que segue o padrão REST (Representational State Transfer) para comunicação entre sistemas. Utilizando o Spring Boot, é possível criar APIs de maneira rápida, eliminando a necessidade de muitas configurações manuais.

Ela permite que clientes (como front-ends, aplicativos móveis ou outros sistemas) realizem operações como GET, POST, PUT e DELETE sobre os dados da aplicação.

Por que usar o Spring Boot para criar APIs?

O Spring Boot é altamente recomendado para criação de APIs REST devido a:

  • 🚀 Facilidade de configuração: Cria aplicações stand-alone rapidamente.
  • 🔧 Produtividade elevada: Reduz a quantidade de código boilerplate.
  • 🔥 Integração com o ecossistema Spring: Segurança, bancos de dados, monitoramento e muito mais.
  • ☁️ Preparado para cloud: Fácil deploy em serviços como AWS, Azure ou GCP.

Como criar uma API REST Spring Boot (Passo a passo)

1. Criar o projeto no Spring Initializr

Acesse https://start.spring.io/ e configure:

  • Project: Maven ou Gradle
  • Language: Java
  • Spring Boot: Última versão estável
  • Dependencies: Spring Web, Spring Data JPA, H2 Database (ou MySQL/PostgreSQL)

2. Estruturar o projeto

Organize o projeto seguindo esta estrutura:

src/main/java
 └── com.seuprojeto
      ├── controller
      ├── model
      ├── repository
      └── service (opcional)

3. Criar a entidade (Model)

@Entity
public class Produto {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String nome;
    private Double preco;

    // Getters e setters
}

4. Criar o repositório

@Repository
public interface ProdutoRepository extends JpaRepository<Produto, Long> {
}

5. Criar o controller (API REST)

@RestController
@RequestMapping("/api/produtos")
public class ProdutoController {

    @Autowired
    private ProdutoRepository repository;

    @GetMapping
    public List<Produto> listar() {
        return repository.findAll();
    }

    @PostMapping
    public Produto salvar(@RequestBody Produto produto) {
        return repository.save(produto);
    }

    @GetMapping("/{id}")
    public ResponseEntity<Produto> buscar(@PathVariable Long id) {
        return repository.findById(id)
                .map(produto -> ResponseEntity.ok(produto))
                .orElse(ResponseEntity.notFound().build());
    }

    @PutMapping("/{id}")
    public ResponseEntity<Produto> atualizar(@PathVariable Long id, @RequestBody Produto produto) {
        return repository.findById(id)
                .map(p -> {
                    p.setNome(produto.getNome());
                    p.setPreco(produto.getPreco());
                    Produto atualizado = repository.save(p);
                    return ResponseEntity.ok(atualizado);
                })
                .orElse(ResponseEntity.notFound().build());
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deletar(@PathVariable Long id) {
        return repository.findById(id)
                .map(p -> {
                    repository.delete(p);
                    return ResponseEntity.noContent().<Void>build();
                })
                .orElse(ResponseEntity.notFound().build());
    }
}

6. Configurar o banco de dados (H2 para testes)

No arquivo application.properties:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true

Acesse http://localhost:8080/h2-console para visualizar o banco.

Testando a API

Você pode testar sua API REST Spring Boot utilizando ferramentas como Postman, Insomnia ou diretamente pelo navegador (no caso dos métodos GET).

Exemplos de endpoints:

  • GET /api/produtos → Lista produtos
  • POST /api/produtos → Cadastra um novo produto
  • GET /api/produtos/{id} → Busca por ID
  • PUT /api/produtos/{id} → Atualiza um produto
  • DELETE /api/produtos/{id} → Remove um produto

Boas práticas ao criar uma API REST Spring Boot

  • ✅ Utilize DTOs para evitar expor entidades diretamente.
  • 🔒 Implemente segurança com Spring Security.
  • 🗒️ Documente sua API com Swagger/OpenAPI.
  • 🔄 Trate exceções e retorne mensagens amigáveis.
  • 🚀 Use versionamento de API (ex: /api/v1/produtos).

Conclusão

Criar uma API REST Spring Boot é um processo simples, eficiente e altamente escalável. Esse framework oferece todas as ferramentas necessárias para construir aplicações robustas, seguras e preparadas para produção.

Se você deseja avançar, confira nosso artigo sobre Deploy de aplicações Java na AWS e leve sua API para a nuvem!