Я хочу понять, как контролировать, когда ответы «кэшируются», а не когда они «пересчитываются».
В качестве примера:
[<EntryPoint>]
let main [| port |] =
let config =
{ defaultConfig with
bindings = [ HttpBinding.mk HTTP IPAddress.Loopback (uint16 port) ]
listenTimeout = TimeSpan.FromMilliseconds 3000.
}
let appDemo:WebPart =
DateTime.Now.ToString()
|> sprintf "Server timestamp: %s"
|> Successful.OK
startWebServer config appDemo
Если я запускаю указанный выше веб-сервер и нажимаю на него несколько раз, то каждый раз я получаю одну и ту же отметку времени. Что, я думаю, имеет смысл; appDemo
— это просто выражение, которое вычисляется впервые и больше никогда, верно?
В этом случае я мог бы захотеть, чтобы appDemo
"пересчитывался" для каждого запроса. Как я могу это сделать? Кажется, я не могу найти пример в документах.