我正在開發我的第一個Sinatra應用程序,而且我很難從發佈請求中獲取參數。Sinatra的閱讀參數
我使用MINITEST ::規格和我的規格看起來像
payload = File.read("./spec/support/fixtures/payload.json")
post "/api/v1/verify_payload", { payload: payload }, { "CONTENT_TYPE" => "application/json" }
last_response.body.must_eql payload
這是我的路線
namespace '/api/v1' do
post '/verify_payload' do
MultiJson.load(params[:payload])
end
end
因爲last_response.body
是空的規範失敗。
我在這裏錯過了什麼嗎?
我也嘗試從verify_payload
返回整個params
,但也在這種情況下,它返回一個空字符串。
更新
curl -X POST -H "Content-Type: application/json" -d '{"payload":"xyz"}' http://localhost:9292/api/v1/verify_payload
不會對服務器日誌返回任何東西,沒有錯誤
[2014-01-06 01:16:25] INFO WEBrick::HTTPServer#start: pid=10449 port=9292
127.0.0.1 - - [06/Jan/2014 01:16:27] "POST /api/v1/verify_payload HTTP/1.1" 200 6 0.0220
感謝
如果你在應用程序中調用你的帖子正常,一切工作? –
該帖子應該由第三方服務調用。我不打算從UI調用它。 – macsig
當然,但是當你用捲曲調用它時會發生什麼,如預期的那樣工作? –