2014-09-19 3 views
6

Sto provando Loopback per un'API che parlerà con Ember.Creazione dell'API di loopback Compatibile con Ember.js

Ember richiede che JSON sia contenuto in "chiavi", ad es. per un account:

{ account: 
    { domain: 'domain.com', 
    subdomain: 'test', 
    title: 'test.domain.com', 
    id: 1 
} } 

ho trovato qualche consiglio sul gruppo Google su come modificare la risposta in modo che Ember lo riceverà, tramite ganci afterRemote.

E.g. nei miei modelli/account.js:

module.exports = function(Account) { 

    Account.afterRemote('**', function (ctx, account, next) { 
     if(ctx.result) { 
     if(Array.isArray(ctx.result)) { 
      ctx.res.body = { 'accounts': account }; 
     } else { 
      ctx.res.body = { 'account': account }; 
     } 
     } 

     console.log(ctx.res.body); 

     next(); 
    }); 

}; 

vedo che la risposta è come dovrebbe essere nella console .. comunque l'uscita JSON al localhost: 3000/API/account non mostra l'oggetto JSON alterato.

Qual è il modo corretto di modificare la risposta/le richieste JSON in Loopback?

Idealmente in un modo generale in modo che possa essere applicato a tutti i modelli.

+0

Che cosa significa "esploratore" significa? –

+0

@torazaburo domanda aggiornata – Adamski

+0

Ember non richiede che il JSON sia diverso da JSON. Penso che tu ti stia riferendo all'adattatore REST di default di Ember Data. Ember.js non richiede l'utilizzo dei dati di brace. E anche se lo fai, puoi scrivere un adattatore personalizzato per gestire qualsiasi tipo di JSON inviato. – Gaurav

risposta

1

È possibile effettuare Ember-dati compatibile con le API di loopback di Strongloop usando il DS.RESTAdapter con DS.JSONSerializer come questo:

// app/adapters/application.js 

import DS from 'ember-data'; 

export default DS.RESTAdapter.extend({ 
    host: 'http://loopback-api-host', 
    namespace: 'api', 
    defaultSerializer: 'JSONSerializer' 
}); 

http://emberjs.com/api/data/classes/DS.JSONSerializer.html

"In Ember dati, la logica per la comunicazione con un archivio di dati back-end L'adattatore di Ember Data ha alcune supposizioni incorporate su come dovrebbe apparire un'API REST Se le convenzioni di backend differiscono da questi presupposti, Ember Data semplifica la modifica delle sue funzionalità sostituendo o estendendo l'adattatore predefinito. "

http://guides.emberjs.com/v2.0.0/models/customizing-adapters/

domanda simile: Strongloop with Emberjs