Jak przeanalizować ciało żądania JSON w Sinatrze tylko raz i narazić je na wszystkie trasy?

Piszę API i otrzymuje ładunek JSON jako treść żądania.

Aby to zrobić, robię coś takiego:

post '/doSomething' do
    request.body.rewind
    request_payload = JSON.parse request.body.read

    #do something with request_payload
    body request_payload['someKey']
end

Jaki jest dobry sposób na to, aby to odciąć, aby nie musiałem tego robić na każdej trasie? Niektóre z moich tras są bardziej skomplikowane, w wyniku czego request.body zostałoby ponownie przeczytane i naprawione kilka razy na trasę przy użyciu tego podejścia, którego chcę uniknąć.

Czy jest jakiś sposób, aby ładowanie request_payload było magicznie dostępne dla tras? Lubię to:

post '/doSomething' do
    #do something with request_payload, it's already parsed and available
    body request_payload['someKey']
end

questionAnswers(3)

yourAnswerToTheQuestion