很久以前,當我第一次查看OData響應有效負載時,GET請求包含指向其他實體或實體集的鏈接(例如OrderHeader實體將包含指向OrderDetails的鏈接)。我相信正確的術語是超媒體。OData超媒體
今天我再次檢查OData,並使用ASP.Net Web API構建了一個OData v4服務,但是沒有這樣的超媒體鏈接正在返回有效載荷中。爲什麼是這樣?是因爲有效載荷現在是JSON(而當我幾年前看起來它是XML)?有沒有什麼辦法在有效負載中包含超媒體鏈接?
這是我所建的。我有一個名爲命題的實體:
public class Proposition
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<Event> Events { get; set; }
}
請注意,命題包含事件集合。我希望,當我要求通過OData的終點,我會得到一個鏈接到活動資源命題,但我不:
我發現了一些信息,在那OData JSON Format Version 4.0 Plus Errata 02#JSON Format Design建議加入$格式= odata.metadata =完整的URL將返回我需要什麼:
的odata.metadata =全格式參數表明該服務必須明確包括在有效載荷
(odata.metadata=full)的所有控制信息
,但我已經試過了,我不取回任何這樣的元數據(截圖自郵差這段時間): 郵差表明我得到了回來什麼odata.metadata.minimal:
爲什麼它忽略了我對全部元數據的請求?