/ / Защо Синатра трябва да пренавие тялото? - искане, синатра

Защо Синатра трябва да пренавие органа за искане? - искане, синатра

Направих POST заявка към приложението на Синатра. Забелязах, че параметрите пристигат в сървъра като StringIO. Може да се чете с помощта на request.body.read, Въпреки това, тя може да бъде прочетена само веднъж. За да го прочета отново, трябва да тичам request.body.rewind (хаха, Синатра).

Защо е проектиран по този начин? Виждам, че това е полезно в поточните данни, но има ли други приложения?

Отговори:

4 за отговор № 1

Параметрите са достъпни в Sinatra чрез хеш params. request.body.read и request.body.rewind са част от Rack, всъщност не сав рамките на Синатра. Най-често срещаният начин, по който съм използвал това в миналото е, когато използвам Синатра строго като уеб API и сериализира / де-сериализира полезния ми товар.