Ich migriere Server, aber leider ist die alte Server-IP in meiner iPhone-App fest codiert. Offensichtlich werde ich ein Update einreichen, das den API-Endpunkt auf meinen neuen Server setzt, aber in der Zwischenzeit muss ich eine App auf dem alten Server einrichten, die alle Anfragen auf den neuen Server umleitet. Ich habe gehört, Sinatra wäre perfekt dafür.Sinatra-App, die POST/GET-Anfragen mit Parametern weiterleitet
require 'sinatra'
get "/foo/bar" do
redirect "http://new-server.com/foo/bar", 303
end
post "/foo/bar" do
redirect "http://new-server.com/foo/bar", 303
end
Das Problem ist, dass diese die GET- oder POST-Parameter nicht zusammen mit der Anfrage weiterleiten. Ich habe auf dem Sinatra-Dokument gelesen, dass Sie das tun können, indem Sie sie direkt in die URL setzen (funktioniert für GET-Anfragen), oder indem Sie Sitzungsvariablen setzen.
Manuelles Parsen und Formatieren der GET-Parameter, um sie wieder in die Weiterleitungs-URL zu setzen, ist die einzige Möglichkeit für GET-Weiterleitungen. Wie sollen Sie POST-Parameter weiterleiten?
See [Dieser Beitrag] (http://stackoverflow.com/questions/798710/how-to-turn-a-ruby-hash-into-http-params) die Analyse und Formatierung zu erleichtern. Wie bei POST könnten Sie sie immer in GET-Parameter umwandeln und Ihre serverseitige Logik ändern, um beides zu akzeptieren. Ich bin mir nicht sicher, ob es einen besseren Weg für Ihren Anwendungsfall gibt. – Jonah