私はサーバーを移行していますが、残念ながら古いサーバーIPはiPhoneアプリケーション内でハードコードされています。 APIエンドポイントを新しいサーバーに設定する更新プログラムを提出する予定ですが、その間に新しいサーバーにすべての要求をリダイレクトする古いサーバーにアプリケーションをセットアップする必要があります。私はシナトラがこれに完璧だと聞いた。パラメータを使用してPOST/GETリクエストをリダイレクトするSinatraアプリ
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
問題は、リクエストと一緒にGETまたはPOSTパラメータを転送しないという問題です。 Sinatraのドキュメントでは、URLに直接入れる(GET要求のために働く)か、またはセッション変数を設定することによって、それを行うことができることを読んでいます。
GETリダイレクトのための唯一の方法は、リダイレクトURLに戻すためにGETパラメータを手動で解析して書式設定することですか? POSTパラメータをどのように転送する必要がありますか?
解析および書式設定を容易にする[このポスト(http://stackoverflow.com/questions/798710/how-to-turn-a-ruby-hash-into-http-params)を参照してください。 POSTに関しては、いつでもGETパラメーターに変換し、サーバー側のロジックを変更してどちらかを受け入れることができます。あなたのユースケースにとってより良い方法があるかどうかはわかりません。 – Jonah