Cómo escribir una API REST en Java en 30 minutos: guía paso a paso

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: REST API es más fácil de lo que parece

\n

Muchos desarrolladores principiantes piensan que escribir una API REST en Java es una tarea compleja que requiere conocimientos profundos y largas horas de trabajo. En realidad, con herramientas modernas como Spring Boot, puedes crear un servicio RESTful completo en tan solo 30 minutos. En este artículo, analizaremos en la práctica cómo escribir una API REST en Java utilizando un conjunto mínimo de herramientas. Obtendrás una plantilla lista que podrás adaptar a tus proyectos.

\n

REST (Transferencia de Estado Representacional) es un estilo arquitectónico que permite a clientes y servidores intercambiar datos a través de HTTP. Crearemos una API simple para gestionar una lista de tareas (To-Do). Al final del artículo, tendrás un servidor funcional que puede crear, leer, actualizar y eliminar tareas (CRUD).

\n\n

Paso 1: Preparación del entorno y creación del proyecto

\n

Para empezar, necesitaremos:

\n
    \n
  • Java Development Kit (JDK) versión 17 o superior.
  • \n
  • IntelliJ IDEA (Community Edition) o cualquier otro IDE.
  • \n
  • Maven para la gestión de dependencias.
  • \n
  • Postman o un navegador para realizar pruebas.
  • \n
\n

Crearemos un proyecto usando Spring Initializr (start.spring.io). Selecciona la siguiente configuración:

\n
    \n
  • Project: Maven
  • \n
  • Language: Java
  • \n
  • Spring Boot: 3.2.x
  • \n
  • Dependencies: Spring Web, Spring Data JPA, H2 Database
  • \n
\n

Descarga el archivo ZIP y descomprímelo. Abre el proyecto en el IDE. La estructura se verá así:

\n
src/\n └── main/\n     ├── java/com/example/restapi/\n     │   ├── RestapiApplication.java\n     │   ├── controller/\n     │   ├── model/\n     │   └── repository/\n     └── resources/\n         └── application.properties
\n

Esta es la base con la que comenzaremos. La preparación tomó literalmente 2 minutos.

\n\n

Paso 2: Creación del modelo de datos y el repositorio

\n

Empecemos con el modelo. Crea la clase Task.java en la carpeta model. Esta será la entidad que representa una tarea:

\n
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    // Constructores\n    public Task() {}\n\n    public Task(String title, boolean completed) {\n        this.title = title;\n        this.completed = completed;\n    }\n\n    // Getters y 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}
\n

Ahora creemos el repositorio. En la carpeta repository, crea la interfaz TaskRepository.java:

\n
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 ya proporciona todos los métodos CRUD básicos\n}
\n

En esta etapa, describimos la estructura de datos y la forma de interactuar con la base de datos. Spring Data JPA creará automáticamente la tabla en H2 y proporcionará los métodos findAll(), save(), deleteById() y otros. Esto ahorrará horas de codificación manual.

\n\n

Paso 3: Creación del controlador con endpoints REST

\n

Ahora viene la parte más interesante: el controlador. En la carpeta controller, crea la clase TaskController.java. Esta manejará las solicitudes HTTP:

\n


                
                

Blogs

Book Recommendations