我有一个API端点,它应该接收JSON或表单urlencoded数据。我可以通过接受标头检测到这一点,但我只是想知道是否有一个机架中间件已经为我做了这个。基本上,它会根据accept标头转换参数。
答案 0 :(得分:2)
你想要https://github.com/achiu/rack-parser,你可以声明解析策略:
use Rack::Parser, :parsers => {
'application/json' => proc { |body| MyCustomJsonEngine.do_it body },
'application/xml' => proc { |body| MyCustomXmlEngine.decode body },
'application/roll' => proc { |body| 'never gonna give you up' }
}
但是,它使用content_type标头。因为这是放置传入的mime类型信息的正确标头。 Accepts标头是用户将接受的响应。