Добавить необязательные параметры запроса со значением по умолчанию для самостоятельной ссылки в 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-адрес, а должно быть уникальным (и, следовательно, включать любые неуказанные необязательные параметры со значением по умолчанию).

Другие вопросы по тегам