2012-03-14 11 views
13

Sono totalmente nuovo alla libreria Backbone.js e leggere tutta la documentazione e capito il funzionamento della biblioteca. Nei seguenti casi, quale dovrebbe essere la risposta del server per il corretto funzionamento dell'applicazione progettata usando il backbone (senza inserire un tratto/codice extra).Iniziare con backbonejs - Cosa deve fare un ritorno del server

assumere un modello come sotto

window.person = Backbone.Model.extend({ 
    defaults: { 
     name: "", 
     email: "[email protected]" 
    }, 
    urlRoot: "PersonApp" 
}); 
  1. Cosa JSON deve restituire Server su convalida è andato bene per model.save()

  2. Cosa JSON deve restituire server per model.fetch()

  3. Cosa JSON dovrebbe restituire il server per model.destroy()

risposta

15

Se si dispone di uno sguardo nel Backbone.Sync documentation, si dice che si dovrebbe rispondere alle richieste con gli attributi che sono stati modificati sul server.

Quindi, per rispondere alle vostre domande:

  1. La richiesta JSON per model.save deve restituire gli attributi che sono stati modificati come parte del salvataggio. Nel caso di una creazione questo sarebbe l'intero modello; nel caso di aggiornamento solo i campi che sono cambiati. (O se sei pigro e non ti dispiace aggiornare l'intero modello lato client, potresti semplicemente restituire l'intero modello).

    Quindi una risposta accettabile sarebbe { 'name' : 'a name', 'email' : '[email protected]' }

  2. Fetch dovrebbe semplicemente restituire il modello in forma JSON. Quindi, lo stesso esempio che ho usato per model.save funzionerebbe.

  3. Non sono del tutto sicuro, ma non credo che Backbone convalidi i dati restituiti dalle richieste di cancellazione, quindi dovresti essere in grado di restituire qualsiasi cosa, purché non si tratti di un errore HTTP. Secondo @ a.real.human.being di seguito, una risposta vuota causa anche errori. Quindi restituire un 200 con "OK" nel corpo (o simili) sembra un piano ragionevole.

+4

La risposta JSON da "destroy" non ha importanza. Backbone ascolta una risposta 20X per il successo. – abraham

+0

@abraham Già lo sapevo, spina dorsale si basa su di stato HTTP 200 per OK quindi tutto ciò che restituisce Stato HTTP significava la richiesta è riuscita per la spina dorsale – Deeptechtons

+3

@abraham Questo non è il caso. Se non si invia alcuna risposta JSON su un 'destroy', viene generato un' error' sul modello. Tuttavia, se si invia qualcosa a tutti (anche 'json_encode ("happy birthday")'), poi lo tratta come un successo. –

Problemi correlati