railsアプリケーションに行われたhttpリクエストがcUrlであるかどうかを知る方法があるのだろうか?RailsアプリケーションでcUrl httpリクエストを作成する
フロントエンドプロセスを実行するコードがあり、Webブラウザで行われたHTTP要求にのみ固有のコードがあります。さて、私は、cUrl要求だけに別のプロセスを作ることができるように、通常のhttp要求をcUrl要求と区別できるようにしたいと思います。
ありがとうございます。
railsアプリケーションに行われたhttpリクエストがcUrlであるかどうかを知る方法があるのだろうか?RailsアプリケーションでcUrl httpリクエストを作成する
フロントエンドプロセスを実行するコードがあり、Webブラウザで行われたHTTP要求にのみ固有のコードがあります。さて、私は、cUrl要求だけに別のプロセスを作ることができるように、通常のhttp要求をcUrl要求と区別できるようにしたいと思います。
ありがとうございます。
if request.env["HTTP_USER_AGENT"] =~ /curl/i
あなたのコントローラでは、このトリックを行う必要があります。または、ユーザエージェントオプションを使用してルーティングレベルでこれを行うことができます。
get '/resource' => 'Controller#curl_logic', constraints: {user_agent: /curl/i}
get '/resource/' => 'Controller#view_logic' # everything else
HTTPリクエストでuser-agentを見ることはできますが、これはcurlクライアントが簡単に行うことができない場合にのみ機能します。ユーザーエージェントを信頼できる「フレンドリーな」クライアントに対してのみこれを実行しているのなら、それは簡単です。最初の例をone of the better resources for rails routingでご覧ください。
yehuda katzさんの投稿は本当に面白いです。ありがとう –