En el universo en expansión de Quarkus, a veces es necesario detener la nave, mirar el mapa y recalibrar coordenadas. Sobre todo cuando una decisión de nomenclatura puede alterar la brújula de muchos desarrolladores.
Este artículo aclara la confusión entre quarkus-rest, quarkus-resteasy-reactive y quarkus-resteasy.
🚨 Diferencias entre Quarkus REST, RESTEasy Reactive y Classic
Desde Quarkus 3.9, la extensión quarkus-resteasy-reactive fue renombrada a quarkus-rest. No hubo cambios técnicos relevantes, solo un cambio de nombre para evitar confusiones.
La funcionalidad sigue siendo la misma: una única implementación moderna, eficiente y basada en Vert.x, capaz de manejar tanto código imperativo como reactivo.
El nuevo nombre quarkus-rest ya no refleja la implementación interna, sino que se alinea con el estilo arquitectónico REST, compatible tanto con programación imperativa como reactiva.
🔍 ¿Por qué era confuso?
El problema estaba en el nombre. Muchos desarrolladores creían que quarkus-resteasy-reactive solo servía para código reactivo explícito, con tipos como Uni o Multi. Y eso no era cierto.
Desde su origen, esta extensión soportó ambos estilos:
| Estilo | Descripción | Ejemplo de retorno |
|---|---|---|
| Imperativo | Programación tradicional (JAX-RS) | String, List<Entity> |
| Reactivo | Programación con Mutiny | Uni<String>, Multi<Entity> |
El origen de la confusión
La confusión crecía porque quarkus-resteasy (sin «reactive») seguía existiendo como opción imperativa «clásica».
Muchos desarrolladores asumían que:
quarkus-resteasy→ solo imperativoquarkus-resteasy-reactive→ solo reactivo- Para ambos estilos → usar las dos juntas ❌
Pero esto era incorrecto. Usar ambas extensiones juntas podía generar conflictos o redundancias, ya que quarkus-resteasy-reactive (hoy quarkus-rest) estaba diseñada para manejar ambos enfoques de forma unificada.
🧭 Nombres desde Quarkus 3.9
| Nombre anterior | Nombre actual | Estado |
|---|---|---|
quarkus-resteasy-reactive | quarkus-rest | ✅ Recomendado |
quarkus-resteasy-reactive-jackson | quarkus-rest-jackson | ✅ Recomendado |
quarkus-resteasy-reactive-jsonb | quarkus-rest-jsonb | ✅ Recomendado |
quarkus-resteasy | quarkus-resteasy | ⚠️ Modo clásico (sin cambios) |
💡 Nota: El nombre antiguo sigue funcionando por retrocompatibilidad, pero se recomienda migrar al nuevo.
💡 ¿Qué estilo de código puedo usar con quarkus-rest?
Ambos. Y el framework se adapta automáticamente.
Imperativo (tradicional)
@GET
@Path("/saludo")
public String hola() {
return "Hola imperativo";
}Reactivo con Mutiny
@GET
@Path("/reactivo")
public Uni<String> holaAsync() {
return Uni.createFrom().item("Hola reactivo");
}Ambos funcionan sobre la misma extensión (quarkus-rest) y Quarkus se encarga del cambio de hilos cuando detecta operaciones bloqueantes.
🔄 ¿Qué tengo que hacer si usaba quarkus-resteasy-reactive?
En la mayoría de los casos, migrar es tan simple como reemplazar la extensión.
Migración automática
Si usas el comando de actualización de Quarkus:
quarkus updateEl cambio suele aplicarse automáticamente, junto con otros ajustes menores en dependencias.
Migración manual
En tu pom.xml, cambia:
<!-- Antes -->
<artifactId>quarkus-resteasy-reactive</artifactId>
<!-- Después -->
<artifactId>quarkus-rest</artifactId>
En proyectos reales —especialmente en contextos empresariales— siempre es recomendable validar que no haya efectos colaterales por cambios acumulados entre versiones.
📖 Para más detalles técnicos sobre este cambio, consulta la Guía de migración oficial de Quarkus 3.9 (en inglés).
🏢 Si usas Red Hat Build of Quarkus
Si trabajas con RHBQ, puedes consultar las notas de versión específicas en el portal de documentación de Red Hat.
Estas páginas ofrecen información detallada sobre:
- Compatibilidad con versiones de Quarkus community
- Cambios clave y lineamientos
- Soporte para entornos empresariales
📊 Resumen: ¿Qué extensión usar?
| Situación | Extensión recomendada |
|---|---|
| Proyecto nuevo | quarkus-rest |
| Migración desde RESTEasy Reactive | quarkus-rest |
| Necesitas solo imperativo (legacy) | quarkus-resteasy (clásico) |
| Quieres imperativo + reactivo | quarkus-rest |
📌 Conclusión
quarkus-rest no es una nueva tecnología. Es simplemente el nuevo nombre de quarkus-resteasy-reactive, una extensión que ya soportaba ambos estilos (imperativo y reactivo) desde hace años.
El cambio de nombre elimina una ambigüedad común y deja claro que esta es la implementación moderna y recomendada para construir APIs REST en Quarkus.

