Направих POST заявка към приложението на Синатра. Забелязах, че параметрите пристигат в сървъра като StringIO. Може да се чете с помощта на request.body.read
, Въпреки това, тя може да бъде прочетена само веднъж. За да го прочета отново, трябва да тичам request.body.rewind
(хаха, Синатра).
Защо е проектиран по този начин? Виждам, че това е полезно в поточните данни, но има ли други приложения?
Отговори:
4 за отговор № 1Параметрите са достъпни в Sinatra чрез хеш params. request.body.read
и request.body.rewind
са част от Rack, всъщност не сав рамките на Синатра. Най-често срещаният начин, по който съм използвал това в миналото е, когато използвам Синатра строго като уеб API и сериализира / де-сериализира полезния ми товар.