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