Добавить необязательные параметры запроса со значением по умолчанию для самостоятельной ссылки в 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, но с другой стороны, тот, который имеет параметр, эквивалентен, и если вы его не получите, вы не узнаете, что эта опция доступна (если вы не прочитаете документацию)
1 ответ
Проект спецификации Hypertext Application Language (HAL) обеспечивает использование href в соответствии с "Target IRI", определенным в спецификации Web Linking ( RFC 5988).
Приложения, которые не хотят регистрировать тип отношения, могут использовать тип отношения расширения, который является URI [RFC3986], который однозначно идентифицирует тип отношения.
Поэтому я бы сказал, что значение self не обязательно должно ссылаться на запрошенный URL-адрес, а должно быть уникальным (и, следовательно, включать любые неуказанные необязательные параметры со значением по умолчанию).