Eu fiz uma solicitação POST para um aplicativo Sinatra. Percebi que os parâmetros chegam no servidor como um StringIO. Pode ser lido usando request.body.read
. No entanto, só pode ser lido uma vez. Para lê-lo novamente, preciso executar request.body.rewind
(haha, sinatra)
Por que é projetado dessa maneira? Eu posso ver isso sendo útil no streaming de dados, mas existem outras aplicações?
Respostas:
4 para resposta № 1Os parâmetros estão disponíveis no Sinatra através do hash params. request.body.read
e request.body.rewind
fazem parte do Rack, eles não são realmenteimplementado no Sinatra. A maneira mais comum como usei isso no passado é quando uso o Sinatra estritamente como uma API da web e como serializar / desserializar minha carga útil.