В листингах 1.92, 1.94 мы видим, что ссылочное поле Должность представлено в виде строкового значения ссылки. Но с помощью параметра $expand мы можем «развернуть» эти значения. Данный параметр позволяет вместе с результатами основного запроса получать значения связанных сущностей, что позволит не запрашивать каждую сущность отдельно.
Для этого наберем в адресной строке браузера следующий URL (листинг 1.95).
Листинг 1.95. URL запроса
localhost/REST/odata/standard.odata/Catalog_Сотрудники?$format=json&$select=Description, ДатаРождения, Должность&$expand=Должность
В результате в окне браузера мы увидим содержимое ответа сервера (листинг 1.96).
Листинг 1.96. Содержимое ответа сервера
{
"odata.metadata": "http://localhost/REST/odata/standard.odata/$metadata#Catalog_Сотрудники",
"value": [{
"Description": "Алексеев Сергей Иванович",
"ДатаРождения": "1980-12-10T00:00:00",
"Должность@navigationLinkUrl": "Catalog_Сотрудники(guid'9575f8ed-369f-11e9-8bb2-642737df2048')/Должность",
"Должность": {
"Ref_Key": "88d54406-36a1-11e9-8bb2-642737df2048",
"Predefined": false,
"PredefinedDataName": "",
"DataVersion": "AAAAAgAAAAA=",
"Description": "Администратор",
"Code": "000000002",
"DeletionMark": false
}
},{
"Description": "Смирнова Светлана Ивановна",
"ДатаРождения": "1990-02-22T00:00:00",
"Должность@navigationLinkUrl": "Catalog_Сотрудники(guid'0b6cd7db-36a0-11e9-8bb2-642737df2048')/Должность",
"Должность": {
"Ref_Key": "88d54407-36a1-11e9-8bb2-642737df2048",
"Predefined": false,
"PredefinedDataName": "",
"DataVersion": "AAAAAwAAAAA=",
"Description": "Кассир",
"Code": "000000003",
"DeletionMark": false
}
},{
"Description": "Артемов Игорь Владимирович",
"ДатаРождения": "1970-01-31T00:00:00",
"Должность@navigationLinkUrl": "Catalog_Сотрудники(guid'0b6cd7dc-36a0-11e9-8bb2-642737df2048')/Должность",
"Должность": {
"Ref_Key": "88d54405-36a1-11e9-8bb2-642737df2048",
"Predefined": false,
"PredefinedDataName": "",
"DataVersion": "AAAAAQAAAAA=",
"Description": "Менеджер",
"Code": "000000001",
"DeletionMark": false
}
}]
}