¿Qué es una API REST?
Una API REST (o RESTful API) es una forma de comunicación entre sistemas que sigue los principios del estilo arquitectónico REST (Representational State Transfer), definido por Roy Fielding en el año 2000. Es ampliamente utilizada para construir servicios web que permiten a diferentes aplicaciones intercambiar datos de manera sencilla, rápida y escalable.
🧠 ¿Qué significa REST?
REST no es un protocolo ni un estándar, sino un conjunto de principios de diseño para crear APIs que funcionen sobre HTTP. Estos principios incluyen:
- 📍 Interfaz uniforme: Todos los recursos se acceden mediante URLs (por ejemplo,
/usuarios/123
). - 🔄 Sin estado: Cada solicitud contiene toda la información necesaria; el servidor no guarda contexto entre llamadas.
- 📦 Acceso a recursos: Los datos (recursos) se representan en formatos como JSON o XML.
- 🔁 Operaciones estándar: Se usan los métodos HTTP:
GET
para obtener datosPOST
para crearPUT
para actualizarDELETE
para eliminar
📦 Ejemplo simple de API REST
Supongamos que tienes una API para gestionar usuarios. Los endpoints típicos serían:
GET /usuarios
→ devuelve la lista de usuariosGET /usuarios/1
→ devuelve el usuario con ID 1POST /usuarios
→ crea un nuevo usuarioPUT /usuarios/1
→ actualiza el usuario con ID 1DELETE /usuarios/1
→ elimina el usuario con ID 1
Todo esto se hace a través de solicitudes HTTP, y la respuesta suele estar en formato JSON, que es fácil de leer tanto para humanos como para máquinas.
🧭 ¿Para qué se usa?
- 📱 Aplicaciones móviles que se conectan a servidores
- 🌐 Sitios web que consumen datos dinámicos
- 🔗 Microservicios que se comunican entre sí
- 🏢 Integraciones entre sistemas empresariales
Crear una API REST en Java con Spring Boot
¡Vamos a ello! Crear una API REST en Java puede hacerse de varias formas, pero una de las más populares y modernas es usando Spring Boot, que simplifica muchísimo el proceso. También podés usar JAX-RS si preferís trabajar con especificaciones estándar de Java EE.
Aquí te explico cómo hacerlo paso a paso con Spring Boot, que es ideal para empezar rápido y con buenas prácticas.
🛠️ Paso 1: Configura tu proyecto
Usá Spring Initializr para generar tu proyecto base:
- Project: Maven
- Language: Java
- Spring Boot version: la más reciente estable
- Dependencies: Spring Web
Descargá el proyecto y abrilo en tu IDE favorito (Eclipse, IntelliJ, VS Code).
📦 Paso 2: Crea tu modelo
public class Usuario {
private Long id;
private String nombre;
private String email;
// Getters y setters
}
📡 Paso 3: Crea tu controlador REST
import org.springframework.web.bind.annotation.*;
import java.util.*;
@RestController
@RequestMapping("/usuarios")
public class UsuarioController {
private List<Usuario> usuarios = new ArrayList<>();
@GetMapping
public List<Usuario> obtenerUsuarios() {
return usuarios;
}
@PostMapping
public void agregarUsuario(@RequestBody Usuario usuario) {
usuarios.add(usuario);
}
@GetMapping("/{id}")
public Usuario obtenerUsuario(@PathVariable Long id) {
return usuarios.stream()
.filter(u -> u.getId().equals(id))
.findFirst()
.orElse(null);
}
@DeleteMapping("/{id}")
public void eliminarUsuario(@PathVariable Long id) {
usuarios.removeIf(u -> u.getId().equals(id));
}
}
🚀 Paso 4: Ejecutá tu aplicación
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Ejecutá la aplicación y accedé a tu API en http://localhost:8080/usuarios.
🧪 Probalo con Postman o fetch()
Podés usar herramientas como Postman o incluso una página HTML con fetch()
para probar tus endpoints.