Size: a a a

2020 May 10

AV

Alexander Vershilov in Haskell
-- | Get the next chunk of the body. Returns 'B.empty' when the
 -- body is fully consumed. Since 3.2.2, this is deprecated in favor of 'getRequestBodyChunk'.
 ,  requestBody          :: IO B.ByteString
источник

A

Andrey in Haskell
на сервере - не вполне так.. вычитку надо заказывать ранее, чтобы область памяти, содержащая тело ответа не очистилась
источник

AV

Alexander Vershilov in Haskell
выглядит неочень
источник

AV

Alexander Vershilov in Haskell
Оно не идемпотентно
источник

AV

Alexander Vershilov in Haskell
Почитал в мидлваре, непонятно, что останется приложению
источник

AV

Alexander Vershilov in Haskell
И непонятно, что останется мидлваре, если приложение прочитает
источник

AV

Alexander Vershilov in Haskell
Поэтому кажется, что правильно, это сначала вычитать себе, а потом заменить requestBody, на действие возвращающее то, что ты вычистал
источник

AV

Alexander Vershilov in Haskell
И наверняка такая милдваря в wai-extra уже есть
источник

A

Andrey in Haskell
опытным путем установил, что тело надо вычитывать руками ранее, до вызова Request -> IO ResponseReceived
источник

AV

Alexander Vershilov in Haskell
Alexander Vershilov
Поэтому кажется, что правильно, это сначала вычитать себе, а потом заменить requestBody, на действие возвращающее то, что ты вычистал
^
источник

A

Andrey in Haskell
пример есть в wai-extra, в логгере
источник

AV

Alexander Vershilov in Haskell
Кажется из типов такое поведение очевидно
источник

YS

Yan Shkurinskiy in Haskell
Alexander Vershilov
значит в bar = ... <- тут что-то, что заставляет неработать
Там формируется респонс и "респондресивится"
источник

AV

Alexander Vershilov in Haskell
эм?
источник

YS

Yan Shkurinskiy in Haskell
Нууу
источник

AV

Alexander Vershilov in Haskell
responseReceived же в приложении нужно формировать или ты подменяешь resp?
источник

YS

Yan Shkurinskiy in Haskell
Тут я его вообще "создаю"
источник

YS

Yan Shkurinskiy in Haskell
Потом в миддлеваре добавляю ему заголовок
источник

YS

Yan Shkurinskiy in Haskell
foo :: Application
foo = addHeadersMiddleware \req respond -> do
 ...
 bar
 where
   bar = respond $ responseStream blah blah ...
источник

AV

Alexander Vershilov in Haskell
это вообще законно?
источник