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
には対応してないのね….