Pregunta

Estoy diseñando una API REST y, para ser lo más relajante posible, quiero implementar HATEOAS en las respuestas json.

Si las entidades vinculadas no están presentes en la base de datos, digamos, por ejemplo, que cada usuario tiene una entidad de pasaporte, pero si alguien no la tiene, quiero enviar el conjunto de enlaces rel y href como este:

{
"links": [
{
  "rel": "drivingLicence",
  "href": "http://localhost:9090/api/v1/drivingLicence/6"
},
{
  "rel": "passport",
  "href": null
},
{
  "rel": "self",
  "href": "http://localhost:9090/api/v1/user/4028818347818fd80147819111d60001"
}
 ],
  "userId": "4028818347818fd80147819111d60001",
  "userName": "username",
  "fullName": "Some User",
  "activeFlag": "ACTIVE",
  "createTimestamp": 1406628074000,
  "updateTimestamp": 1505697126548
}

¿Hay alguna forma de lograr esto usando Spring HATEOAS o manualmente tengo que verificar si hay nulo y luego configurar href como nulo?

¿Fue útil?

Solución

No hay forma de hacer esto con la clase Link incorporada, ya que no permite que href sea nulo o esté vacío (verifica el constructor).Quizás pueda derivar de Link y pasar un href que no esté vacío, pero anule getHref para devolver nulo.

FWIW:Nunca he visto el href como una estrategia nula.He visto que tiene el enlace, y si devuelve 404, significa que no está presente y simplemente no tiene el enlace.Como cliente de hipermedia, me sorprendería mucho ver href como nulo... pero este es un campo nuevo con nuevas prácticas que ocurren todo el tiempo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top