Ho un servizio esistente scritto con .NET Web API.Ember.js Rest Adapter: mapping JSON senza radice (API Web .NET)
A titolo di esempio, questo servizio restituisce JSON nel seguente formato:
[
{ "id": 1, "name": "John" },
{ "id": 2, "name": "Jane" }
]
Tuttavia, come per il Ember.js Rest Adapter documentation, Ember si aspetta JSON nel seguente formato:
{
"persons": [
{ "id": 1, "name": "John" },
{ "id": 2, "name": "Jane" }
]
}
A causa di questo , Ember restituisce il seguente errore: Il server ha restituito un hash con la chiave 0 ma non ha alcuna mappatura per esso
In nessun modo ho intenzione di modificare la mia API di servizio e come restituisce i dati.
Sarebbe possibile ottenere Ember.js (ultima versione) per lavorare con i dati esistenti che il mio servizio sta restituendo? E, in tal caso, come posso implementarlo?
Grazie! In Ember-Contact-Management-WebAPI, stai facendo uno speciale adattamento o serializzazione dei dati per lavorare con Ember? Ho notato che ContactController restituisce IEnumerable o ContactDto per ottenere. Questo è praticamente ciò che espone il mio controller API Web, tuttavia, il formato non è corretto sulla mia parte. –
Controlla [questa directory] (https://github.com/MilkyWayJoe/Ember-Contact-Management-WebAPI/tree/master/Ember-Contact-Management-WebAPI/Scripts/app), vedrai la definizione del Web API Adapter e WebAPISerializer, che gestisce l'integrazione del payload JSON con Ember-Data. Queste classi stanno estendendo il built-in RESTAdapter e RESTSerializer. – MilkyWayJoe
Questo è esattamente ciò di cui avevo bisogno. Tuttavia, per qualche motivo, utilizzando DS.WebAPIAdapter, Ember ora colpisce l'URL del mio servizio REST come nome singolare. Ad esempio, prima di usare il RestAdapter, questo avrebbe colpito http: // localhost/api/things. Ora colpisce http: // localhost/api/thing. Qualche idea? –