ГОСТ Р ИСО/МЭК 19831—2017
4.1.6.4 Разворачивание ссылок
Запрашивая представление Ресурса Потребители могут включать параметр запроса Sexpand для
определения, какие атрибуты верхнего уровня Ресурса, на которые указывают ссылки, должны бытьдо
бавлены в представление. Поставщики должны интерпретировать и обработать этот параметр запроса в
соответствии с требованиями настоящего раздела. Разворачивание ссылки означает, что атрибуты
Ресурса, на который указывает ссылка, должны быть включены в сериализацию этого атрибута. Это
функция позволяет оптимизировать получение Ресурсов.
Сериализация должна быть выполнена следующим образом:
Сериализация JSON:
"name’: {’href’: string}
должна быть расширена, и стать:
"name’: {
"href": string,
... атрибуты ресурса, на который указывает ссылка...
}
Сериализация XML:
<namehref = "xs:anyURI7>
должна быть расширена, и представлять собой:
<name href = "xs:anyURI">
... атрибуты ресурса, на который указывает ссылка...
</пате>
Примечание — ВслучаеXMLвложенныеэлементы недолжнысодержатьэлемент-оберткуРесурса, на
которыйссылаются (например. <Machine> в случав ссылки на Ресурс Machine).
Формат параметра запроса Sexpand должен быть следующим:
? $ехрапД=наименование Атрибута...
Значение параметра запроса Sexpand —перечень наименований атрибутов, разделенных запя
той. Любое наименование атрибута, ошибочно появляющееся в списке, которое не является частью
Ресурса или ссылкой, должно быть проигнорировано Поставщиком. Наименование атрибута «*» или
полное отсутствие перечня наименований атрибутов эквивалентно перечислению всех атрибутов. Если
наименование атрибута явно появляется в URI более одного раза, его второе (и последующие появле
ния) должны быть проигнорированы.
Параметр запроса Sexpand может появиться в URI несколько раз. Это семантически эквивалентно
появлению всех наименований атрибутов как значения единичного параметра запроса Sexpand.
Если запрашиваемым Ресурсом является Набор, то наименования атрибутов, перечисленные в
Sexpand. должны применяться к атрибутам ресурсов, содержащихся в Наборе. Например определе
ние ? Sexpand=volumes при запросе к MachineCollection имеет тот же самый итоговый эффект, что и
применение семантики «расширения» к указанному атрибуту (в данном примере «Volumes») каждого
Ресурса Machine в пределах Набора. При этом Sexpand действует на атрибуты Ресурсов в Наборе, а не на
атрибуты самого Ресурса Набора.
4.1.6.5 Определение формата Ресурса
Для определения стиля кодирования ответа при запросе представления Ресурса используется за
головок HTTPAccept. Несмотря на то. что Потребителям рекомендуется использовать заголовок Accept,
могут возникнуть ситуации, когда Потребители будут не в состоянии управлять значениями, определен
ными в данном заголовке. В этих случаях Потребители могут использовать параметр запроса Sformat,
чтобы переопределить значения заголовка Accept. Поставщики должны интерпретировать и обраба
тывать параметр запроса Sformat. в соответствии с требованиями настоящего раздела.
Параметр Sformat должен иметь форму ? Sformat=encoding. где ’encoding* — требуемое пред
ставление ответа. Настоящий стандарт определяет два возможных значения: «json» и «xml». Постав
щик может поддерживать также другие значения. Значение параметра запроса Sformat не зависит от
регистра.
Если в сообщении запроса будут присутствовать заголовок Accept и параметр запроса Sformat,
то значение Sformat является приоритетным. Если параметр запроса Sformat появляется более одного
раза, то второе и последующие его появления должны быть проигнорированы.
9