rest - example - Relación y diferencia entre HAL y HATEOAS
json hal estandariza la siguiente característica no especificada en el estándar de json (1)
HATEOAS (Hypermedia como el motor del estado de la aplicación) y HAL (Lenguaje de aplicación de hipertexto) parecen estar relacionados, pero no son exactamente lo mismo. ¿Cuál es la relación y diferencia entre HATEOAS y HAL?
HATEOAS es un concepto de arquitectura de aplicaciones . Define la forma en que los clientes de las aplicaciones interactúan con el servidor, navegando por los hipermedia enlaces que encuentran dentro de los modelos de recursos devueltos por el servidor.
Para implementar HATEOAS necesita alguna forma estándar de representación de recursos, que contendrá información hipermedia (enlaces a recursos relacionados), por ejemplo, algo como esto:
{
"links": {
"self": { "href": "http://api.com/items" },
"item": [
{ "href": "http://api.com/items/1" },
{ "href": "http://api.com/items/2" }
]
},
"data": [
{ "itemName": "a" },
{ "itemName": "b" }
]
}
HAL es uno de esos estándares. Es un formato específico de presentación de recursos, que se puede usar para implementar HATEOAS.
Puede implementar HATEOAS por completo sin seguir HAL en absoluto si prefiere seguir otro estándar o usar el suyo propio.