ГОСТ Р ИСО/МЭК 19831—2017
либо Поставщиком во время выполнения с помощью механизмов обнаружения метаданных, опреде
ленных данной спецификацией.
При сериализации в JSON значения должны иметь тип JSON: строка -string.
При сериализации в XML значения должны иметь тип схемы XML: xs:hexBinary.
5.5.10 URI
Формат и синтаксис атрибутов типа «URI» определены в RFC3986 [8).
Настоящий стандарт не устанавливает требований к использованию Поставщиками относитель
ного или абсолютного URI в теле ответа HTTR
Если URI определены как относительные URI. то они должны быть заданы относительно baseURI.
Алгоритм, используемый для преобразования относительного URI в абсолютный URI. должен
соответствовать описанию, приведенному в 5.2 RFC3986 [8]. Преобразование относительного URIe
абсолютный^! приведено в таблице 3.
Таблица 3— Преобразованиеотносительного URI в абсолютный URI
Базовый URI
Относительный URI
Абсолютный URI
http://exampte.com/
p1/file
http://example.eom/p
1/file
http-J/exampte-com/cl/
р1/П1е
http://example.eom/d/p
1/frie
http://exampte.com/c1/c2/
p1/file
http://example.com/c1/c2/p1/file
При использовании относительных URIbasellRI должен заканчиваться наклонной чертой, и от
носительные URI не должны начинаться с наклонной черты. Этот формат совместим с большинством
утилит разрешения URI и приводит к тем же результатам, что и простой алгоритм конкатенации строк.
При сериализации в JSON значения должны иметь тип JSON: строка — string.
При сериализации в XML значения должны иметь тип схемы XML: xs:anyURI.
5.5.11 Массивы
Массив представляет собой упорядоченный перечень элементов одного и того же типа. Массив
должен быть атрибутом Ресурса и быть доступен только как таковой (он не является отдельно адресу
емым Ресурсом). Если Ресурс будет удален, то элементы его массивов также должны быть удалены.
Однаков случае, если эти элементы являются ссылками на другие Ресурсы, то Ресурсы, на которые
имеются ссылки, не будут затронуты (см. 5.7).
Атрибуты, являющиеся массивами, определены с помощью нотации itemType (]. где itemType —
наименование типа для каждого элемента массива. Если тип представляет собой структуру, а не просто
тип данных, то рекомендуется в качестве соглашения в модели использовать множественное число в
наименовании массива, которое характеризует каждый элемент. Например массив элементов имеет ли
структура наименование "Volume’ или ссылок на них может иметь наименование "Volumes".
Если атрибут будет иметь тип «массив ссылок» (reff]) и, в более общем случае, массив атомар
ного типа, то определение в модели должно включать в себя поле «наименование элемента массива»,
которое может использоваться в его сериализации.
Сериализация JSON:
В рамках данной спецификации массивы в JSON сериализуются как значение некоторого свой
ства. Наименование свойства должно быть тем же самым, что и наименование атрибута для массива.
Например атрибут "things’ типа ”thing[]" сериализуется следующим образом:
things”: (
{••• M l ?
Если элементы в массиве являются структурами, то наименование структуры не должно присут
ствовать в сериализации JSON.
При наличии массива ссылок, т. е. когда тип "геГ относится к каждому элементу массива, каждый
элемент массива должен быть сериализован как свойство href. Например массив "things’ типа *геПГ
будет преобразован в последовательную форму следующим образом:
’things": (
{"href": string). +
l?
22