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

Add optional query parameters with default value to self link in 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,但另一方面,带有参数的值是等效的,如果您没有收到它,您将不会'不知道该选项可用(除非您阅读文档)

Hypertext Application Language (HAL) draft specification enforces the "href" in conformity with the "Target IRI" defined in Web Linking specification (RFC 5988).

Applications that don't wish to register a relation type can use an extension relation type, which is a URI [RFC3986] that uniquely identifies the relation type.

所以我想说 self 值不一定指请求的 URL,而是唯一的(因此 包括任何未指定的可选参数 , 及其默认值)。