Handler的签名如下,本质是一个对HandlerData处理的IO函数。
1 2 3 4 5 6 7 8 9 10
| data HandlerData child site = HandlerData { handlerRequest :: !YesodRequest , handlerEnv :: !(RunHandlerEnv child site) , handlerState :: !(IORef GHState) , handlerResource :: !InternalState }
newtype HandlerFor site a = HandlerFor { unHandlerFor :: HandlerData site site -> IO a }
|
site是项目的配置,对site提供路由等实现。