Я пытаюсь создать систему, которая использует nodejs с express для рендеринга html-страниц на основе данных из другой внутренней службы. Внутренний сервис предоставляет данные JSON, которые сервер nodejs использует для визуализации html, а затем передает их в браузер. Читая о REST и ограничении Hyemedia, я хочу использовать это в дизайне, но не могу понять это. Простым примером может служить страница со списком элементов, в которой каждый элемент представляет собой ссылку, по которой можно перейти, чтобы получить полную информацию об этом элементе. Так что бэкэнд-сервис может создать JSON, который выглядит как
{
"title": "List of items"
"self": "http://api.hostname.com/items
[
{
"title":"item1",
"url": "http://api.hostname.com/items/1
}
{
"title":"item2",
"url": "http://api.hostname.com/items/2
} {
"title":"item3",
"url": "http://api.hostname.com/items/3
}
}
Затем я должен сделать так, чтобы nodejs отобразил страницу в формате html со списком ссылок, используя «title» для имени. Вопрос в том, что я не знаю, что использовать для href. Это сработало бы, если бы href относился к представлению с элементом рендеринга, как
href="/items/2
но у меня нет возможности передать поле url обратно узлу, чтобы узел мог передать его бэкэнд-службе. Я заканчиваю тем, что строил URL для бэкэнд-сервиса на основе URL представления. Что, если я понимаю, REST - это не способ Hypermedia. Это означает, что мой код узла должен знать формат URL-адресов бэкэнд-службы, а не получать URL-адреса и использовать их напрямую.
Так есть ли такая умная функция, как добавление поля url в качестве параметра запроса для href, чтобы сохранить его на клиенте? Я неправильно понимаю ограничение Hypermedia или я вообще пытаюсь его использовать?