Hice una solicitud POST a una aplicación de Sinatra. Noté que los parámetros llegan al servidor como StringIO. Se puede leer usando request.body.read
. Sin embargo, solo se puede leer una vez. Para leerlo de nuevo, necesito correr request.body.rewind
(jaja, Sinatra).
¿Por qué está diseñado de esta manera? Puedo ver que esto es útil en la transmisión de datos, pero ¿hay otras aplicaciones?
Respuestas
4 para la respuesta № 1Los parámetros están disponibles en Sinatra a través del hash params. request.body.read
y request.body.rewind
son parte de Rack, en realidad no sonimplementado dentro de sinatra. La forma más común en que he usado esto en el pasado es cuando estoy usando Sinatra estrictamente como API web y serializando / des-serializando mi carga útil.