HATEOAS
A través de EntityModel
y ModelAssembler
, cada respuesta incluye un objeto _links
con rutas útiles. Por ejemplo, al consultar los pagos (/api/v2/pagos
), se agregan enlaces automáticos a:
El detalle de cada pago
La lista completa
El recurso actual (
self
)
Esto facilita que el cliente recorra la API sin conocer todas las URLs de antemano.
{
"_embedded": {
"pagoList": [
{
"id": 137,
"idCurso": "CURSO-B000IT4T9Q",
"fechaPago": "2025-06-26",
"monto": 1056.41,
"estadoPago": "COMPLETADO",
"metodoPago": "jcb",
"cupon": {
"id": 157,
"codigo": "80445944",
"descuento": 21.68,
"fechaExpiracion": "2025-07-15",
"estado": "ACTIVO"
},
"_links": {
"detalle_pago": {
"href": "http://localhost:8080/api/v2/pagos/137"
},
"lista_pagos": {
"href": "http://localhost:8080/api/v2/pagos"
}
}
},
{
"id": 138,
"idCurso": "CURSO-B000NQLULE",
"fechaPago": "2025-06-26",
"monto": 4134.87,
"estadoPago": "COMPLETADO",
"metodoPago": "jcb",
"cupon": {
"id": 158,
"codigo": "46737243",
"descuento": 46.86,
"fechaExpiracion": "2025-07-18",
"estado": "ACTIVO"
},
"_links": {
"detalle_pago": {
"href": "http://localhost:8080/api/v2/pagos/138"
},
"lista_pagos": {
"href": "http://localhost:8080/api/v2/pagos"
}
}
}
]
},
"_links": {
"self": {
"href": "http://localhost:8080/api/v2/pagos"
}
}
}
Last updated