| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Webby
Contents
Synopsis
- data WebbyM appEnv a
- data RoutePattern
- type Routes appEnv = [(RoutePattern, WebbyM appEnv ())]
- mkRoute :: Method -> Text -> WebbyM appEnv () -> (RoutePattern, WebbyM appEnv ())
- post :: Text -> WebbyM appEnv () -> (RoutePattern, WebbyM appEnv ())
- get :: Text -> WebbyM appEnv () -> (RoutePattern, WebbyM appEnv ())
- put :: Text -> WebbyM appEnv () -> (RoutePattern, WebbyM appEnv ())
- type Captures = HashMap Text Text
- captures :: WebbyM appEnv Captures
- getCapture :: FromHttpApiData a => Text -> WebbyM appEnv a
- flag :: Text -> WebbyM appEnv Bool
- header :: HeaderName -> WebbyM appEnv (Maybe Text)
- headers :: WebbyM appEnv [Header]
- jsonData :: FromJSON a => WebbyM appEnv a
- param :: FromHttpApiData a => Text -> WebbyM appEnv (Maybe a)
- param_ :: FromHttpApiData a => Text -> WebbyM appEnv a
- params :: WebbyM appEnv [(Text, Text)]
- request :: WebbyM appEnv Request
- requestBodyLength :: WebbyM appEnv (Maybe Int64)
- setStatus :: Status -> WebbyM appEnv ()
- addHeader :: Header -> WebbyM appEnv ()
- setHeader :: Header -> WebbyM appEnv ()
- blob :: ByteString -> WebbyM appEnv ()
- json :: ToJSON b => b -> WebbyM appEnv ()
- text :: Text -> WebbyM appEnv ()
- stream :: StreamingBody -> WebbyM appEnv ()
- mkWebbyApp :: appEnv -> Routes appEnv -> IO Application
- data WEnv appEnv
- getAppEnv :: WebbyM appEnv appEnv
- runAppEnv :: ReaderT appEnv (WebbyM appEnv) a -> WebbyM appEnv a
- finish :: WebbyM appEnv a
- data WebbyError
Documentation
The main monad transformer stack used in the web-framework.
The type of a handler for a request is `WebbyM appEnv ()`. The
appEnv parameter is used by the web application to store an
(read-only) environment. For e.g. it can be used to store a
database connection pool.
Instances
| Monad (WebbyM appEnv) Source # | |
| Functor (WebbyM appEnv) Source # | |
| Applicative (WebbyM appEnv) Source # | |
Defined in Webby.Types Methods pure :: a -> WebbyM appEnv a # (<*>) :: WebbyM appEnv (a -> b) -> WebbyM appEnv a -> WebbyM appEnv b # liftA2 :: (a -> b -> c) -> WebbyM appEnv a -> WebbyM appEnv b -> WebbyM appEnv c # (*>) :: WebbyM appEnv a -> WebbyM appEnv b -> WebbyM appEnv b # (<*) :: WebbyM appEnv a -> WebbyM appEnv b -> WebbyM appEnv a # | |
| MonadIO (WebbyM appEnv) Source # | |
Defined in Webby.Types | |
| MonadUnliftIO (WebbyM appData) Source # | |
Defined in Webby.Types | |
| MonadLogger (WebbyM env) Source # | |
Defined in Webby.Types | |
| MonadReader (WEnv appEnv) (WebbyM appEnv) Source # | |
Routing and handler functions
data RoutePattern Source #
Instances
| Eq RoutePattern Source # | |
Defined in Webby.Types | |
| Show RoutePattern Source # | |
Defined in Webby.Types Methods showsPrec :: Int -> RoutePattern -> ShowS # show :: RoutePattern -> String # showList :: [RoutePattern] -> ShowS # | |
type Routes appEnv = [(RoutePattern, WebbyM appEnv ())] Source #
The Routes of a web-application are a list of mappings from a
RoutePattern to a handler function.
mkRoute :: Method -> Text -> WebbyM appEnv () -> (RoutePattern, WebbyM appEnv ()) Source #
Create a route for a user-provided HTTP request method, pattern and handler function.
post :: Text -> WebbyM appEnv () -> (RoutePattern, WebbyM appEnv ()) Source #
Create a route for a POST request method, given the path pattern and handler.
get :: Text -> WebbyM appEnv () -> (RoutePattern, WebbyM appEnv ()) Source #
Create a route for a GET request method, given the path pattern and handler.
put :: Text -> WebbyM appEnv () -> (RoutePattern, WebbyM appEnv ()) Source #
Create a route for a PUT request method, given the path pattern and handler.
Captures
getCapture :: FromHttpApiData a => Text -> WebbyM appEnv a Source #
Retrieve a particular capture (TODO: extend?)
Request parsing
Response modification
blob :: ByteString -> WebbyM appEnv () Source #
stream :: StreamingBody -> WebbyM appEnv () Source #
Application
mkWebbyApp :: appEnv -> Routes appEnv -> IO Application Source #
Use this function, to create a WAI application. It takes a
user/application defined appEnv data type and a list of
routes. If none of the requests match a request, a default 404
response is returned.
Application context
The reader environment used by the web framework. It is parameterized by the application's environment data type.
getAppEnv :: WebbyM appEnv appEnv Source #
Retrieve the app environment given to the application at initialization.
Handler flow control
Exceptions thrown
data WebbyError Source #
Various kinds of errors thrown by this library - these can be caught by handler code.
Constructors
| WebbyJSONParseError Text | |
| WebbyParamParseError | |
Fields
| |
| WebbyMissingCapture Text | |
Instances
| Show WebbyError Source # | |
Defined in Webby.Types Methods showsPrec :: Int -> WebbyError -> ShowS # show :: WebbyError -> String # showList :: [WebbyError] -> ShowS # | |
| Exception WebbyError Source # | |
Defined in Webby.Types Methods toException :: WebbyError -> SomeException # fromException :: SomeException -> Maybe WebbyError # displayException :: WebbyError -> String # | |