web-dev-qa-db-fra.com

Relation et différence entre HAL et HATEOAS

HATEOAS (Hypermedia comme moteur de l'état de l'application) et HAL (Hypertext Application Language ) semblent être liés mais ne sont pas exactement les mêmes. Quelle est la relation et la différence entre HATEOAS et HAL?

58
Lee Chee Kiam

HATEOAS est un concept de architecture d'application. Il définit la manière dont les clients d'application interagissent avec le serveur, en parcourant les liens hypermédias qu'ils trouvent dans les modèles de ressources renvoyés par le serveur.

Pour implémenter HATEOAS, vous avez besoin d'une méthode standard de représentation des ressources, qui contiendra des informations hypermédia (liens vers des ressources connexes), par exemple, quelque chose comme ceci:

{
    "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 est l'une de ces normes. Il s'agit d'un format spécifique de présentation des ressources, qui peut être utilisé pour implémenter HATEOAS.

Vous pouvez pleinement implémenter HATEOAS sans suivre HAL du tout si vous préférez suivre une autre norme ou utiliser la vôtre.

71
astreltsov