可以使用指向相同资源的不同链接吗?

Is it ok to have different links leading to the same resource?

选项 1:

我们总是return"absolute"links(没有嵌套)。这样,对于给定的资源,我们总是向客户提供相同的 link。

{
    "employeeName": "Joe"
    "links": {
        "company": [
            { "href": "http://api.com/companies/1" }
        ]
}

需要吗? (知道它需要在服务器端做额外的工作)

选项 2:

我们也可以 return "relative" links,嵌套在资源下 returned 到客户端(此处为员工)。但是现在客户端可能已经收到了 2 个不同的 links ("http://api.com/companies/1" and "http://api.com/employees/4/company") 对应于同一个资源。

{
    "employeeName": "Joe"
    "links": {
        "company": [
            { "href": "http://api.com/employees/4/company" }
        ]
}

是否有比另一个更好的选择,为什么?

同一资源可以有多个链接。

URL设计与 HATEOAS 无关。