wai-extra-3.0.20.0: Provides some basic WAI handlers and middleware.

Safe HaskellNone
LanguageHaskell2010

Network.Wai.UrlMap

Description

This module gives you a way to mount applications under sub-URIs. For example:

bugsApp, helpdeskApp, apiV1, apiV2, mainApp :: Application

myApp :: Application
myApp = mapUrls $
      mount "bugs"     bugsApp
  <|> mount "helpdesk" helpdeskApp
  <|> mount "api"
          (   mount "v1" apiV1
          <|> mount "v2" apiV2
          )
  <|> mountRoot mainApp

Synopsis

Documentation

data UrlMap' a Source #

Instances

Functor UrlMap' Source # 

Methods

fmap :: (a -> b) -> UrlMap' a -> UrlMap' b #

(<$) :: a -> UrlMap' b -> UrlMap' a #

Applicative UrlMap' Source # 

Methods

pure :: a -> UrlMap' a #

(<*>) :: UrlMap' (a -> b) -> UrlMap' a -> UrlMap' b #

(*>) :: UrlMap' a -> UrlMap' b -> UrlMap' b #

(<*) :: UrlMap' a -> UrlMap' b -> UrlMap' a #

Alternative UrlMap' Source # 

Methods

empty :: UrlMap' a #

(<|>) :: UrlMap' a -> UrlMap' a -> UrlMap' a #

some :: UrlMap' a -> UrlMap' [a] #

many :: UrlMap' a -> UrlMap' [a] #

mount' :: ToApplication a => Path -> a -> UrlMap Source #

Mount an application under a given path. The ToApplication typeclass gives you the option to pass either an Application or an UrlMap as the second argument.

mount :: ToApplication a => Text -> a -> UrlMap Source #

A convenience function like mount', but for mounting things under a single path segment.

mountRoot :: ToApplication a => a -> UrlMap Source #

Mount something at the root. Use this for the last application in the block, to avoid 500 errors from none of the applications matching.