私はRuby on Railsを使用しています。クライアント(私が開発したネイティブのモバイルアプリケーション)は、Rubyコードにhttp投稿リクエストを送信し、私のコードは(いくつかのビジネスロジックに基づいて)いくつかの余分なhttpヘッダーを追加します。このポスト要求を別のバックエンドサーバ(RESTサービスを持つ)に「リダイレクト」し、その応答をクライアントに返します。変更されたHTTPヘッダーを持つhttp投稿要求を別のサーバーにリダイレクト
私はラックのミドルウェアを書いて、ポストリクエストを傍受し、追加のヘッダを追加することができました。もともとは、私はhttpリダイレクト(ステータスコード:307後のリクエストのために)を使用することができると思った。しかし、問題は、余分なヘッダーがでなく、と提出できるということです。これは私のコードの全体的なポイントです。したがって、はではありません。HTTPリダイレクトまたは転送自体ではなく、リクエストを変換するようなものです。
net httpを使用して自分のコードから別の投稿要求を行うことができます。これは機能します。しかし、私はCOPY私の発信要求(フォームデータ、httpヘッダーなど)への着信要求からのデータにする必要があります。このコピーはちょっと面倒です。
私は単純な「再パッケージ化」(HTTPリダイレクトやフォワーディングに似ています)を好みます。つまり、着信要求全体をコピーして、追加のヘッダーをスラップし、宛先URLに送信しますと一緒に行われる。私はこれをどうやって行うのか分からず、そうするのが良い方法でもあります。たとえば、HTTP_USER_AGENT
には、クライアントのブラウザのOSであるOSが表示されます。新しいリクエストを作成しているときに、これを送信する必要はありません。
また、すべてのバックエンドサーバー(この「リダイレクト」の宛先)が気になるアプリケーション固有のデータのみをコピーできます。しかし、私はコード内の属性をハードコーディングすることを嫌い、クライアント(私たちのネイティブモバイルアプリ)と密接に結びついています。理想的には、アプリケーション固有のデータをコピーして、の属性名をハードコードしないとコピーできません。これは可能ですか?もしそうなら、どうですか?
アドバイスをいただければ幸いです。 ありがとうございます。
を参照してください。すべてのアプリケーション固有のアプリケーションヘッダーは、「HTTP_」で始まります(http://stackoverflow.com/questions/6317705/rackrequest-how-do-i-get-all-headersで説明されています)。フォームデータは、request.POST(Rack :: Requestのオブジェクトであるリクエスト)を介してアクセスできます。したがって、属性名をハードコードする必要はありません。 –