我正在尝试了解如何将JSON对象发布到Sinatra API的事件链。
将有一个JSON对象需要使用Sinatra通过POST请求传递,这里是我不想工作的代码:
namespace '/api/v1/registrations' do
post '/' do
my_hash = JSON.parse(request.body.read)
puts my_hash
end
end
以下是我试图发布的一些测试数据:
curl -H "Content-Type: application/json" -X POST http://localhost:4567/api/v1/registrations/ -d '{"i": "am json"}'
我在控制台上收到此错误:
JSON::ParserError - 757: unexpected token at '{i: am':
似乎我可以将一个JSON对象发布到/ api / v1 / registrations /并且我会在控制台上看到它被解析,所以我可以看到它实际上做了一些事情。
request.body.read
到底在做什么?我用Google搜索了手指,我只需要一个关于POSTING JSON如何工作的外行答案。