为什么HATEOS链接中包含根URL?

时间:2019-01-03 09:46:56

标签: rest

Spring框架给出的示例显示完整的URL以href:https://spring.io/understanding/HATEOAS

的形式给出。

例如:"href": "http://localhost:8080/customer/1"

如果新的通话也在http:///localhost:8080上,我可以使用"href": "/customer/1"吗?

如果我包含根URL,则这会将响应与服务器名称联系起来。如果我要移动它或更改端口,则响应必须更改。它不提供任何新信息,可以推断出根URL,因为它与进行此调用的URL相同。

是否包含它,以便如果将其传递给另一个系统,它将知道要调用的URL?

1 个答案:

答案 0 :(得分:1)

  

如果新呼叫也位于http:///localhost:8080上,我可以使用“ href”:“ / customer / 1”吗?

/customer/1的技术术语为relative reference。如果您的上下文具有“基本URI”,则可以使用引用解析将相对引用转换为URI。

在HTML中,有一个用于计算文档base URI的显式过程。

JSON-LD还允许显式设置基本IRI,但否则将遵循RFC 3986中所述的过程。

Geert Jansen提出一个论点,即您shouldn't在表示中使用相对引用。我认为他的论点不是特别有说服力,但这是需要注意的。