2009-07-04 12 views
5

Sto cercando di implementare la negoziazione del contenuto su alcune risorse in un'app Rails. Sto usando Mootools e sarà probabilmente in grado di modificare il tipo di contenuto accettato da XMLHTTPRequest in "application/json".RESTful Content Negoziation in Rails

C'è un modo per raccogliere queste informazioni nel mio controller e generare risposte JSON invece di XHTML?

sto cercando di evitare di fare qualcosa di simile:

http://site/resource/1?format=JSON 

... come si sporca il mio URL, impone un certo grado di ridondanza e non è flessibile.

Grazie!

risposta

4

È possibile utilizzare una strofa respond_to nel metodo di controllo, in questo modo:

respond_to do |format| 
    format.html { # Generate an HTML response... } 
    format.json { # Generate a JSON response... } 
end 

Rails determina il formato di risposta in base al valore del HTTP Accept intestazione inviato dal cliente.

1

Sicuramente http://site/resource/1.json dovrebbe funzionare? potrebbe essere necessario impostarlo nel tuo Rails Environment, tuttavia, a seconda di quanto sia attuale la versione di Rails che hai, ne dubito.

0

Dopo molte ricerche, mentre le rotaie ha tutto per selezionare automaticamente un modello per l'uscita, si richiede ancora la chiamata a respond_to per ognuno vuoi sostenerci.

8

http://site/resource/1.json non è l'uso corretto della negoziazione del contenuto. Il punto è che l'URL deve rimanere lo stesso, ma il client richiede una rappresentazione specifica (JSON, PDF, HTML ecc.) Basata su intestazioni HTTP inviate con la richiesta.

Problemi correlati