I am writing an API and it receives a JSON payload as the request body.
To get at it currently, I am doing something like this:
post '/doSomething' do
request.body.rewind
request_payload = JSON.parse request.body.read
#do something with request_payload
body request_payload['someKey']
end
What's a good way to abstract this away so that I don't need to do it for each route? Some of my routes are more complicated than this, and as a result the request.body would get reread and reparsed several times per route with this approach, which I want to avoid.
Is there some way to make the request_payload just magically available to routes? Like this:
post '/doSomething' do
#do something with request_payload, it's already parsed and available
body request_payload['someKey']
end
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…