Comics API: De la idea a la realidad con IA (el título que me sugirió)

Introducción

Hace poco me propuse un desafío: construir una API REST completa para gestionar cómics. La idea era simple, pero el camino de desarrollo fue bastante enriquecedor. En este artículo te cuento cómo pasé de una idea inicial a una API robusta utilizando diferentes herramientas de IA.


Primera etapa: Los inicios con ChatGPT y mis conocimientos

Comencé con lo que ya sabía sobre Spring Boot, MongoDB y arquitectura REST. Pero para acelerar el proceso y validar conceptos, decidí usar ChatGPT como asistente inicial.

Con su ayuda generé:

  • Estructura base del proyecto
  • Modelos de entidades (Comic, User)
  • Endpoints CRUD básicos
  • Configuración inicial de Spring Boot

El resultado fue funcional, pero tenía algunas limitaciones en la arquitectura, manejo de errores y optimizaciones.


Segunda etapa: Revisión y mejora con Claude

Aquí es donde las cosas mejoraron significativamente. Llevé el código a Claude para una revisión exhaustiva, y las mejoras fueron sustanciales:

Mejor estructura de capas: Separación clara entre controllers, services, repositories
Manejo robusto de errores: Excepciones personalizadas y respuestas consistentes
Validaciones mejoradas: Lógica de negocio más sólida (como la validación compuesta title + number)
Documentación con Swagger: OpenAPI completo para la API
Seguridad: Integración de Spring Security preparada
Patrones de diseño: DTOs, Mappers, y buenas prácticas


¿Qué hace la Comics API?

Es una API REST completa para gestionar una biblioteca de cómics. Permite:

📚 Gestión de Cómics:

  • Crear nuevos cómics (con validación de título + número único)
  • Buscar cómics por título (búsqueda case-insensitive)
  • Obtener información detallada de cada cómic
  • Actualizar datos de cómics
  • Eliminar cómics

👥 Gestión de Usuarios:

  • Registro e inicio de sesión
  • Perfil de usuario
  • Control de acceso

Componentes técnicos

Tecnologías principales:

  • Backend: Spring Boot 3.5.10
  • Base de datos: MongoDB
  • Autenticación: Spring Security + JWT (preparado)
  • Documentación: Swagger/OpenAPI 3.0
  • Lenguaje: Java 17+
  • Build Tool: Maven

Estructura del proyecto:

comics-api/
├── controllers/      → Endpoints REST
├── services/        → Lógica de negocio
├── repository/      → Acceso a datos
├── models/          → Entidades de BD
├── dto/             → Data Transfer Objects
├── exceptions/      → Excepciones personalizadas
├── mappers/         → Conversión de entidades
└── config/          → Configuración general

Características destacadas

🔍 Búsqueda inteligente

Busca cómics por título de forma flexible:

  • Case-insensitive
  • Búsqueda parcial
  • Resultados paginados

✔️ Validaciones robustas

  • Previene duplicados (mismo título + número)
  • Valida entrada de datos
  • Mensajes de error claros y descriptivos

📊 Respuestas consistentes

Todas las respuestas siguen un formato estándar:

{
  "success": true,
  "data": {...},
  "message": "Operación completada",
  "timestamp": "2026-06-12T10:30:00Z"
}

🛡️ Seguridad

  • Prepared statements en queries
  • Validación en todos los endpoints
  • Spring Security integrado

Lecciones aprendidas

ChatGPT es excelente para generar código inicial y estructuras, pero necesita revisión.

Claude brilló en la revisión profunda, optimizaciones de arquitectura y mejores prácticas.

✨ Combinar conocimiento propio + IA es la fórmula ganadora.


Acceso al repositorio

El código está disponible en https://github.com/entorno5/comics-backend. Te invito a explorar, forkear y mejorar el proyecto.


Instalación y configuración

Requisitos previos:

  • Java 17+
  • Maven 3.8+
  • MongoDB instalado localmente o en tu servidor

Configurar tu instancia de MongoDB

El proyecto está preconfigurado para conectarse a MongoDB. Si quieres usar tu propia instancia, solo necesitas modificar el archivo application.properties:

# application.properties
spring.data.mongodb.uri=mongodb://tu-usuario:tu-contraseña@tu-servidor:27017/nombre-base-datos

Ejemplos de configuración:

# MongoDB local (por defecto)
spring.data.mongodb.uri=mongodb://localhost:27017/comics

# MongoDB en servidor remoto
spring.data.mongodb.uri=mongodb://192.168.0.20:27017/testComics

# MongoDB con autenticación
spring.data.mongodb.uri=mongodb://user:password@mongodb.example.com:27017/comics

# MongoDB Atlas (cloud)
spring.data.mongodb.uri=mongodb+srv://user:password@cluster.mongodb.net/comics

Ejecutar la aplicación

# Clonar el repositorio
git clone https://github.com/tu-usuario/comics-api.git
cd comics-api

# Compilar
mvn clean install

# Ejecutar
mvn spring-boot:run

# O ejecutar directamente el JAR
java -jar target/comics-api.jar

La API estará disponible en: http://localhost:8080

Documentación interactiva: http://localhost:8080/swagger-ui.html


Conclusión

Este proyecto es un ejemplo perfecto de cómo las herramientas de IA pueden potenciar el desarrollo, pero el criterio, la arquitectura y la mejora continua siguen siendo responsabilidad del desarrollador.

¿Has utilizado IA en tus proyectos? Me encantaría escuchar tu experiencia en los comentarios.


Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *