Safe Haskell | None |
---|---|
Language | Haskell2010 |
- initialState :: ResponseState
- currentResponse :: Monad m => HandlerT m ResponseState
- abort :: Monad m => ResponseState -> HandlerT m ()
- status :: Monad m => Status -> HandlerT m ()
- addHeader :: Monad m => CI ByteString -> ByteString -> HandlerT m ()
- setHeader :: Monad m => CI ByteString -> ByteString -> HandlerT m ()
- body :: Monad m => BodySource -> HandlerT m ()
- file :: Monad m => FilePath -> Maybe FilePart -> HandlerT m ()
- builder :: Monad m => Builder -> HandlerT m ()
- bytestring :: Monad m => ByteString -> HandlerT m ()
- stream :: Monad m => StreamingBody -> HandlerT m ()
- raw :: MonadIO m => (IO ByteString -> (ByteString -> IO ()) -> IO ()) -> Response -> HandlerT m ()
- json :: Monad m => ToJSON a => a -> HandlerT m ()
- formData :: MonadIO m => BackEnd y -> HandlerT m ([(ByteString, ByteString)], [File y])
- headers :: Monad m => HandlerT m RequestHeaders
- jsonData :: (FromJSON a, MonadIO m) => HandlerT m (Either JsonInputError a)
- params :: Monad m => HandlerT m [Param]
- redirect :: Monad m => Text -> HandlerT m ()
- request :: Monad m => HandlerT m Request
- text :: Monad m => Text -> HandlerT m ()
- html :: Monad m => Text -> HandlerT m ()
- routePattern :: Monad m => HandlerT m (Maybe Text)
- lookupParam :: (Functor m, Monad m, Parsable a) => ByteString -> HandlerT m (Maybe a)
- param :: (Functor m, Monad m, Parsable a) => ByteString -> HandlerT m a
- raise :: Monad m => ByteString -> HandlerT m ()
- runHandler :: Monad m => ResponseState -> Maybe Text -> Request -> [Param] -> HandlerT m a -> m (Either ResponseState (a, ResponseState))
- liftAround :: Monad m => (forall a. m a -> m a) -> HandlerT m a -> HandlerT m a
Documentation
currentResponse :: Monad m => HandlerT m ResponseState Source
abort :: Monad m => ResponseState -> HandlerT m () Source
End the handler early with an arbitrary ResponseState
.
addHeader :: Monad m => CI ByteString -> ByteString -> HandlerT m () Source
Add a header to the response. Header names are case-insensitive.
setHeader :: Monad m => CI ByteString -> ByteString -> HandlerT m () Source
Set a response header. Overrides duplicate headers of the same name.
body :: Monad m => BodySource -> HandlerT m () Source
Set an arbitrary body source for the response.
:: Monad m | |
=> FilePath | The file to send |
-> Maybe FilePart | If |
-> HandlerT m () |
Send a file as the response body.
builder :: Monad m => Builder -> HandlerT m () Source
Set the response body to a ByteString Builder
. Sets no headers.
bytestring :: Monad m => ByteString -> HandlerT m () Source
Set the response body to a lazy ByteString
. Sets no headers.
stream :: Monad m => StreamingBody -> HandlerT m () Source
Send a streaming response body. Sets no headers.
:: MonadIO m | |
=> (IO ByteString -> (ByteString -> IO ()) -> IO ()) | |
-> Response | Backup response when the WAI provider doesn't support upgrading (e.g. CGI) |
-> HandlerT m () |
Send raw output as the response body. Useful for e.g. websockets. See WAI's responseRaw
for more details.
json :: Monad m => ToJSON a => a -> HandlerT m () Source
Send a value as JSON as the response body. Also sets the content type to application/json.
formData :: MonadIO m => BackEnd y -> HandlerT m ([(ByteString, ByteString)], [File y]) Source
Parse out the form parameters and the uploaded files. Consumes the request body.
headers :: Monad m => HandlerT m RequestHeaders Source
Get all the request headers.
jsonData :: (FromJSON a, MonadIO m) => HandlerT m (Either JsonInputError a) Source
Consume the request body as a JSON value. Returns a JsonInputError
on failure.
Terminate the current handler and send a 302 Found
redirect to the provided URL.
Other headers that have already been set will also be returned in the request.
text :: Monad m => Text -> HandlerT m () Source
Return plain text as the response body. Sets the Content-Type header to "text/plain; charset=utf-8".
html :: Monad m => Text -> HandlerT m () Source
Return HTML as the response body. Sets the Content-Type header to "text/html; charset=utf-8".
If you're using something like blaze-html or lucid, you'll probably get better performance by rolling
your own function that sets the response body to a Builder
.
routePattern :: Monad m => HandlerT m (Maybe Text) Source
Get the pattern that was matched in the router, e.g. "foo:bar"
lookupParam :: (Functor m, Monad m, Parsable a) => ByteString -> HandlerT m (Maybe a) Source
raise :: Monad m => ByteString -> HandlerT m () Source
runHandler :: Monad m => ResponseState -> Maybe Text -> Request -> [Param] -> HandlerT m a -> m (Either ResponseState (a, ResponseState)) Source
liftAround :: Monad m => (forall a. m a -> m a) -> HandlerT m a -> HandlerT m a Source