Edited at

SinatraでJSONを受け取る方法

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-Typeapplication/jsonである必要があるので注意。