Rails 禁用 JSON 解析 POST/PUT/PATCH 正文
Rails disable JSON parsing of POST/PUT/PATCH body
我想接受一个大的 JSON PUT 请求并使用 Sidekiq 在后台完全处理它。因此,我不想自动解析来自请求正文的传入 JSON。
在 controller/action-based 水平上完成此任务的最佳做法是什么?
据我所知,这是通过 Rack 中间件完成的,所以我不认为您可以立即禁用一个 controller/action。你可以修补 ActionDispatch::ParamsParser
类似于这个人所做的:
http://www.jkfill.com/2015/02/21/skip-automatic-params-parsing/
当然,您可以编写自己的中间件来解析参数,或者为 JSON MIME 类型指定自定义解析器。
最后,您可以一起禁用 JSON 解析。在你的 config/application.rb 添加:
config.middleware.swap ActionDispatch::ParamsParser, ActionDispatch::ParamsParser, Mime::JSON => nil
我想接受一个大的 JSON PUT 请求并使用 Sidekiq 在后台完全处理它。因此,我不想自动解析来自请求正文的传入 JSON。
在 controller/action-based 水平上完成此任务的最佳做法是什么?
据我所知,这是通过 Rack 中间件完成的,所以我不认为您可以立即禁用一个 controller/action。你可以修补 ActionDispatch::ParamsParser
类似于这个人所做的:
http://www.jkfill.com/2015/02/21/skip-automatic-params-parsing/
当然,您可以编写自己的中间件来解析参数,或者为 JSON MIME 类型指定自定义解析器。
最后,您可以一起禁用 JSON 解析。在你的 config/application.rb 添加:
config.middleware.swap ActionDispatch::ParamsParser, ActionDispatch::ParamsParser, Mime::JSON => nil