HATEOAS ( Hypermedia як двигун стану програми) та HAL (Hypertext Application Language), схоже, пов’язані, але не зовсім однакові. Який взаємозв’язок та різниця між HATEOAS та HAL?
HATEOAS ( Hypermedia як двигун стану програми) та HAL (Hypertext Application Language), схоже, пов’язані, але не зовсім однакові. Який взаємозв’язок та різниця між HATEOAS та HAL?
Відповіді:
HATEOAS - це концепція архітектури додатків . Він визначає спосіб взаємодії клієнтів додатків із сервером шляхом навігації гіпермедіа-посиланнями, які вони знаходять у моделях ресурсів, що повертаються сервером.
Для реалізації HATEOAS вам потрібен якийсь стандартний спосіб представлення ресурсів, який міститиме інформацію про гіпермедіа (посилання на пов’язані ресурси), наприклад, приблизно так:
{
"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 - один із таких стандартів. Це специфічний формат подання ресурсів, який може бути використаний для реалізації HATEOAS.
Ви можете повністю впровадити HATEOAS, не дотримуючись HAL взагалі, якщо ви віддаєте перевагу дотримуватися іншого стандарту або використовувати свій власний.