2016-07-07 7 views
0

Ich baue eine API mit Rails 4 und in meinem Controller verwende ich respond_to, um zwischen html und json Anfrage zu unterscheiden, die alles gut funktioniert. Beim Testen meiner API in Postman habe ich die folgende Kopfzeile hinzugefügt: Content-Type: application/json, aber in meiner Anfrage muss ich noch .json am Ende davon hinzufügen: https://myapi.com/api/users.json sonst antwortet Rails mit html, obwohl der oben erwähnte Header vorhanden ist. dieserWie Rails mit JSON basierend auf Headern antworten kann

ist meine Frage: Gibt es eine Möglichkeit, dass Rails kann die Content-Type: application/json Header erkennen und darauf zu reagieren mit json ohne mich mit dem .json Teil in der URL wie folgt: https://mypai.com/api/users?

Antwort

1

Sie müssen auch den Accept Header Accept: application/json

einstellen Wenn Sie neugierig sind, warum, und der Unterschied zwischen den beiden Header, die Antworten zu diesem Beitrag erklären es am besten: https://webmasters.stackexchange.com/questions/31212/difference-between-the-accept-and-content-type-http-headers

+0

Wo sollte ich dann den Header "Accept" setzen? – WagnerMatosUK

+0

Eigentlich, egal! Ich hab es geschafft. Nur als Referenz (Sie können Ihre Antwort als Referenz bearbeiten) müssen Sie eine andere Kopfzeile hinzufügen "Accept: application/json" – WagnerMatosUK

0

Wenn Sie verwenden einen Link-Helper in einer Ansicht, fügen Sie einfach die Formatinformationen hinzu, z. B. posts_path(format: :json).

+0

Ich verwende keine Ansichten obwohl – WagnerMatosUK

Verwandte Themen