将具有默认值的可选查询参数添加到hateoas中的self链接

时间:2016-05-20 09:46:07

标签: hateoas

我正在开发的后端的一个端点接受一个可选参数。如果客户端未发送此参数,则它将采用默认值。所以GET调用

http://my.host.com/some_endpoint

相当于

http://my.host.com/some_endpoint?some_parameter=0

这是json的回应:

{
    ...
    "_links": {
        "self": "http://my.host.com/some_endpoint"
    }
}

在第二个GET中,self值最后有?some_parameter=0。是否应该将其添加到第一个电话中?

换句话说:应该是

的回应
GET http://my.host.com/some_endpoint

{
    ...
    "_links": {
        "self": "http://my.host.com/some_endpoint"
    }
}

{
    ...
    "_links": {
        "self": "http://my.host.com/some_endpoint?some_parameter=0"
    }
}

一方面,self值应该引用您请求的URL,但另一方面,带参数的URL是等效的,如果您没有收到它,您将不知道该选项是可用(除非您阅读文档)

1 个答案:

答案 0 :(得分:0)

Hypertext Application Language(HAL)draft规范强制执行" href"符合目标IRI"在Web链接规范(RFC 5988)中定义。

  

不希望注册关系类型的应用程序可以使用      扩展关系类型,它是唯一的URI [RFC3986]      识别关系类型。

所以我说自我价值不一定是指所请求的网址,而是唯一的(因此包含任何未指定的可选参数,其默认值)。