UrlBuilder
Utilidad fluida para construir URLs con query parameters de forma null-safe.
Elimina la necesidad de concatenar manualmente los parámetros de la URL
y gestiona automáticamente los valores nulos y los campos anotados con
JsonIgnore.
Uso básico — params manuales
String url = UrlBuilder.of("https://api.example.com/documents")
.param("casoId", "uuid-123")
.param("isValid", true)
.param("categoryId", null) // ← ignorado automáticamente
.build();
// → "https://api.example.com/documents?casoId=uuid-123&isValid=true"
Uso con objeto request — automático
// Convierte todos los campos no nulos (y no @JsonIgnore) a query params
String url = UrlBuilder.of("https://api.example.com/documents")
.fromObject(request)
.build();
Reglas de fromObject
- Campos con valor
nullson ignorados - Campos anotados con
JsonIgnoreson excluidos Solo tipos simples:String,Boolean,Integer,Long,Double,Floaty sus primitivos - Campos complejos (
File, colecciones, objetos) son ignorados
Metodos
of(String baseUrl)
Crea un nuevo builder para la URL base indicada.
UrlBuilder.of("https://api.example.com/endpoint")
.param("id", "uuid")
.build();
Parametros:
baseUrl— URL base sin query params
Retorna: nuevo UrlBuilder listo para configurar
param(String name, Object value)
Añade un query param si el valor no es null ni vacío.
.param("casoId", request.getCasoId()) // incluido si no es null
.param("category", null) // ignorado
.param("active", false) // incluido — false es un valor válido
Parametros:
name— nombre del parámetrovalue— valor del parámetro (String,Boolean,Integer, etc.)
Retorna: este builder para encadenamiento
fromObject(Object request)
Convierte automáticamente los campos del objeto a query params usando reflexión.
Solo procesa tipos simples. Los campos JsonIgnore y los tipos
complejos (File, colecciones, etc.) son excluidos automáticamente.
// Convierte todos los campos del request a ?campo1=val&campo2=val...
UrlBuilder.of(baseUrl)
.fromObject(uploadRequest) // file es @JsonIgnore → excluido
.build();
Parametros:
request— objeto cuyos campos se convertirán a query params
Retorna: este builder para encadenamiento
build()
Construye la URL final concatenando todos los query params acumulados.
String url = UrlBuilder.of("https://api.example.com/docs")
.param("casoId", "uuid")
.param("isValid", true)
.build();
// → "https://api.example.com/docs?casoId=uuid&isValid=true"
Retorna: URL completa con query string, o la URL base si no hay params