Linked entities - Marusyk/SmartVillageOnline GitHub Wiki
Робота з зв'язаними об'єктами
Наприклад об'єкт Street виглядає наступним чином (http://deploy-test.apphb.com/api/Street
):
[{
StreetTypeID: 1,
StreetType: null,
Name: "Шевченка",
ID: 1,
LastUpdDT: "2015-08-12T21:57:00",
LastUpdUS: "SV"
},
{
StreetTypeID: 1,
StreetType: null,
Name: "Головна",
ID: 2,
LastUpdDT: "2015-08-12T21:57:00",
LastUpdUS: "SV"
}]
Він має залежний об'єкт StreetType (http://deploy-test.apphb.com/api/StreetType
):
[{
Name: "вулиця",
ID: 1,
LastUpdDT: "2015-08-12T21:57:00",
LastUpdUS: "SV"
}]
Для отримання об'єкту Street з його зв'язаним об'єктом StreetType можна сформувати запит використовуючи OData:
http://deploy-test.apphb.com/api/Street?$expand=StreetType
Результат:
[{
StreetType: {
Name: "вулиця",
ID: 1,
LastUpdDT: "2015-08-12T21:57:00",
LastUpdUS: "SV"
},
StreetTypeID: 1,
Name: "Шевченка",
ID: 1,
LastUpdDT: "2015-08-12T21:57:00",
LastUpdUS: "SV"
},
{
StreetType: {
Name: "вулиця",
ID: 1,
LastUpdDT: "2015-08-12T21:57:00",
LastUpdUS: "SV"
},
StreetTypeID: 1,
Name: "Головна",
ID: 2,
LastUpdDT: "2015-08-12T21:57:00",
LastUpdUS: "SV"
}]
Також можна використати більш дружній URL для отримання аналогічних даних:
http://deploy-test.apphb.com/api/Street/full
В такому разі система автоматично визначить всі зв'язані об'єкти Street і перенеправить користувача на URL: http://deploy-test.apphb.com/api/Street?$expand=StreetType
Для отриманна зв'язаних об'єктів для конкретного елементу Street по вказаному ID є можливість викристовувати 2 типи URL:
OData: http://deploy-test.apphb.com/api/Street(1)?$expand=StreetType
Friendly user interface: http://deploy-test.apphb.com/api/Street/1/full