Railsのノリでparamsを見ても空のHashになってる.
GETメソッドはparamsでも大丈夫なんだけど…
とりあえずrequest.bodyを読み込んでJSONにパースすることで解決.
app.rb
# coding: utf-8
require 'sinatra'
require 'json'
post '/', provides: :json do
params = JSON.parse request.body.read
end
# 後略
実際にPOSTしてみる.
console
$ curl -v -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"hoge":"ほげほげ","fuga":"ふがふが","piyo":"ぴよぴよ"}' http://localhost:4567/
たぶんparams[:hoge]とかparams[:fuga]で参照できるはず.
Rack::Request#paramsから辿って行くとRack::Request#POSTに以下の記述が.
This method support both application/x-www-form-urlencoded and multipart/form-data.
application/jsonには対応してないのね….