大きなJSON PUTリクエストをSidekiqでバックグラウンドで処理したいと考えています。そのため、リクエストの本文から着信JSONを自動的に解析する必要はありません。RailsはPOST/PUT/PATCH本体のJSON解析を無効にします
コントローラー/アクションベースのレベルでこれを達成するベストプラクティスは?
大きなJSON PUTリクエストをSidekiqでバックグラウンドで処理したいと考えています。そのため、リクエストの本文から着信JSONを自動的に解析する必要はありません。RailsはPOST/PUT/PATCH本体のJSON解析を無効にします
コントローラー/アクションベースのレベルでこれを達成するベストプラクティスは?
私が知っている限り、これはRackミドルウェアを介して行われているので、1つのコントローラ/アクションですぐに無効にすることはできません。
http://www.jkfill.com/2015/02/21/skip-automatic-params-parsing/
ます、もちろん、パラメータを解析し、独自のミドルウェアを書くことができ、またはJSON MIMEタイプのカスタムパーサーを指定:あなたはこの男がやったことと同様のActionDispatch::ParamsParser
にパッチを適用することができます。
最後に、JSON解析をすべて無効にすることができます。あなたのconfig/application.rbに次のように追加してください:
config.middleware.swap ActionDispatch::ParamsParser, ActionDispatch::ParamsParser, Mime::JSON => nil
それはアプリケーション全体に変更を適用するでしょう、おそらくそれを望んでいない、チェックアウトhttp://icelab.com.au/articles/wrapping-rack-ミドルウェア--to-exclude-certain-urls-for-rails-ストリーミングレスポンス/ URIに応じてミドルウェアの変更を適用する方法について//http://icelab.com.au/articles/wrapping-rack-middleware-to-exclude-certain-urls-for-rails-streaming-responses/ – bbozo
そのリクエストに別のコンテンツタイプを使用しても良いでしょうか? –