Почему корневая ссылка включена в ссылки HATEOS? - PullRequest
0 голосов
/ 03 января 2019

В примере, представленном средой Spring, показан полный URL-адрес в виде href: https://spring.io/understanding/HATEOAS

Например: "href": "http://localhost:8080/customer/1"

Могу ли я использовать "href": "/customer/1", если новый вызов также включен http: /// localhost: 8080 ?

Если я включу корневой URL-адрес, это связывает ответ с именем сервера. Если бы я переместил его или изменил порт, ответ должен был бы измениться. Он не предоставляет никакой новой информации, корневой URL может быть выведен, поскольку он будет таким же, как тот, который был сделан для этого вызова.

Включено ли это, чтобы, если оно было передано другой системе, оно узнало, какой URL вызывать?

1 Ответ

0 голосов
/ 03 января 2019

Могу ли я использовать "href": "/ customer / 1", если новый вызов также включен http: /// localhost: 8080 ?

Технический термин для /customer/1 является относительной ссылкой .Если у вашего контекста есть «базовый URI», то разрешение ссылки можно использовать для преобразования относительной ссылки в URI.

В HTML существует явная процедура вычисления базового URI документа.

JSON-LD также позволяет явно задавать базовый IRI, но в остальном откладывается на процесс, описанный в RFC 3986 .

Герт Янсен приводит аргумент, что вы не должны использовать относительные ссылки в ваших представлениях.Я не нахожу его аргумент особенно убедительным, но об этом нужно знать.

...