Introducción: REST API es más fácil de lo que parece
\nMuchos 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.
\nREST (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\nPaso 1: Preparación del entorno y creación del proyecto
\nPara 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
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
Descarga el archivo ZIP y descomprímelo. Abre el proyecto en el IDE. La estructura se verá así:
\nsrc/\n └── main/\n ├── java/com/example/restapi/\n │ ├── RestapiApplication.java\n │ ├── controller/\n │ ├── model/\n │ └── repository/\n └── resources/\n └── application.properties\nEsta es la base con la que comenzaremos. La preparación tomó literalmente 2 minutos.
\n\nPaso 2: Creación del modelo de datos y el repositorio
\nEmpecemos con el modelo. Crea la clase Task.java en la carpeta model. Esta será la entidad que representa una tarea:
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}\nAhora creemos el repositorio. En la carpeta repository, crea la interfaz 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 ya proporciona todos los métodos CRUD básicos\n}\nEn 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.
Paso 3: Creación del controlador con endpoints REST
\nAhora viene la parte más interesante: el controlador. En la carpeta controller, crea la clase TaskController.java. Esta manejará las solicitudes HTTP:
Blogs
Book Recommendations
Leer también
Registro en aplicaciones Swift: mejores prácticas para principiantes
Salarios de desarrolladores PHP en Rusia: panorama del mercado 2025
Las mejores IDE y herramientas para el desarrollo en Kotlin: nivel avanzado
Expresiones regulares en Go con ejemplos: guía completa
Programación funcional en Rust: modismos y prácticas