我有一個用.NET Web API編寫的現有服務。Ember.js Rest適配器:映射JSON與無根(.NET Web API)
作爲一個示例,該服務以下列格式返回JSON:
[
{ "id": 1, "name": "John" },
{ "id": 2, "name": "Jane" }
]
然而,如每Ember.js Rest Adapter documentation,灰燼會期望JSON以下列格式:
{
"persons": [
{ "id": 1, "name": "John" },
{ "id": 2, "name": "Jane" }
]
}
因此,Ember返回以下錯誤: 您的服務器返回的密鑰爲0的散列,但您沒有映射
絕不打算改變我的服務API以及它如何返回數據。
有可能得到Ember.js(最新版本)與我的服務返回的現有數據一起工作嗎?而且,如果是這樣,我該如何執行?
謝謝!在你的Ember-Contact-Management-WebAPI中,你是否正在做任何特殊的適配或序列化數據來與Ember一起工作?我注意到您的ContactController會返回IEnumerable或ContactDto for gets。這幾乎是我的Web API控制器公開的內容,但是,在我的結尾,格式不正確。 –
2013-04-05 17:36:38
檢查[此目錄](https://github.com/MilkyWayJoe/Ember-Contact-Management-WebAPI/tree/master/Ember-Contact-Management-WebAPI/Scripts/app),你會看到Web API Adapter和WebAPISerializer,它處理與Ember-Data的JSON負載集成。這些類正在擴展內置的RESTAdapter和RESTSerializer。 – MilkyWayJoe 2013-04-05 17:43:42
這正是我需要的。但是,由於某種原因,使用DS.WebAPIAdapter,Ember現在將我的REST服務url作爲單數名詞命中。例如,在使用RestAdapter之前,它會打到http:// localhost/api/things。現在它擊中http:// localhost/api/thing。有任何想法嗎? – 2013-04-05 18:04:47