yesod-core-0.8.3.2: Creation of type-safe, RESTful web applications.

Yesod.Dispatch

Contents

Synopsis

Quasi-quoted routing

parseRoutes :: QuasiQuoter

A quasi-quoter to parse a string into a list of Resources. Checks for overlapping routes, failing if present; use parseRoutesNoCheck to skip the checking. See documentation site for details on syntax.

mkYesodSource

Arguments

:: String

name of the argument datatype

-> [Resource] 
-> Q [Dec] 

Generates URL datatype and site function for the given Resources. This is used for creating sites, not subsites. See mkYesodSub for the latter. Use parseRoutes to create the Resources.

mkYesodSubSource

Arguments

:: String

name of the argument datatype

-> Cxt 
-> [Resource] 
-> Q [Dec] 

Generates URL datatype and site function for the given Resources. This is used for creating subsites, not sites. See mkYesod for the latter. Use parseRoutes to create the Resources. In general, a subsite is not executable by itself, but instead provides functionality to be embedded in other sites.

More fine-grained

mkYesodData :: String -> [Resource] -> Q [Dec]Source

Sometimes, you will want to declare your routes in one file and define your handlers elsewhere. For example, this is the only way to break up a monolithic file into smaller parts. Use this function, paired with mkYesodDispatch, to do just that.

Path pieces

class MultiPiece s where

Methods

fromMultiPiece :: [Text] -> Maybe s

toMultiPiece :: s -> [Text]

type Strings = [String]

type Texts = [Text]Source

Convert to WAI

toWaiApp :: (Yesod y, YesodDispatch y y) => y -> IO ApplicationSource

Convert the given argument into a WAI application, executable with any WAI handler. This is the same as toWaiAppPlain, except it includes three middlewares: GZIP compression, JSON-P and path cleaning. This is the recommended approach for most users.

toWaiAppPlain :: (Yesod y, YesodDispatch y y) => y -> IO ApplicationSource

Convert the given argument into a WAI application, executable with any WAI handler. This differs from toWaiApp in that it uses no middlewares.