SinatraでJSONを受け取る方法。
結論: Rack::PostBodyContentTypeParser を使う。
やり方
rack-contrib
をインストールする
Gemfile
gem 'rack-contrib'
or
$ gem install rack-contrib
Rack::PostBodyContentTypeParser
を有効にする
app.rb
require 'sinatra'
require 'rack/contrib'
use Rack::PostBodyContentTypeParser
post '/hoge' do
params[:foo]
end
動作確認
$ curl -X POST -H 'Content-Type: application/json' -d '{"foo": "bar"}' http://localhost:4567/hoge
bar
ただし、リクエストのContent-Type
はapplication/json
である必要があるので注意。