The wai-routes package

[Tags: library, mit]

Provides easy to use typesafe URLs for Wai Applications.

Sample usage follows (See examples/Example.hs in the source bundle for the full code) -

{-# LANGUAGE OverloadedStrings, TypeFamilies #-}

import Network.Wai
import Network.Wai.Middleware.Routes

import Data.IORef

-- The Site Argument
data MyRoute = MyRoute (IORef DB)

-- Generate Routes
mkRoute MyRoute [parseRoutes|
/             UsersR         GET
/user/#Int    UserR:
  /              UserRootR   GET
  /delete        UserDeleteR POST
|]

-- Define Handlers
-- All Users Page
getUsersR :: Handler MyRoute
getUsersR (MyRoute dbref) request = ...
-- Single User Page
getUserRootR :: Int -> Handler MyRoute
getUserRootR userid (MyRoute dbref) request = ...
-- Delete Single User
postUserDeleteR :: Int -> Handler MyRoute
postUserDeleteR userid (MyRoute dbref) request = ...

-- Define Application using RouteM Monad
myApp = do
  db <- liftIO $ newIORef mydb
  route (MyRoute db)
  setDefaultAction $ staticApp $ defaultFileServerSettings "static"

-- Run the application
main :: IO ()
main = toWaiApp myApp >>= run 8080

Properties

Versions0.1, 0.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.4.0, 0.4.1, 0.5.0, 0.5.1
Dependenciesaeson (>=0.7.0.1 && <0.8), base (>=4.6.0.1 && <4.7), blaze-builder (>=0.3.3.2 && <0.4), bytestring (>=0.10.0.2 && <0.11), http-types (>=0.8.3 && <0.9), mtl (>=2.1.2 && <2.2), template-haskell (>=2.8.0.0 && <2.9), text (>=0.11.3.1 && <1.2), wai (>=2.0.0 && <2.2), yesod-routes (>=1.2.0.6 && <1.3)
LicenseMIT
AuthorAnupam Jain
Maintainerajnsit@gmail.com
StabilityExperimental
CategoryNetwork
Home pagehttps://github.com/ajnsit/wai-routes
Source repositoryhead: git clone http://github.com/ajnsit/wai-routes
this: git clone http://github.com/ajnsit/wai-routes/tree/v0.5.1(tag v0.5.1)
Upload dateMon May 12 06:07:01 UTC 2014
Uploaded byAnupamJain
Downloads896 total (53 in last 30 days)

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees