Responder is a tiny web application framework for WAI.
ResponderM
for composing responses and threading state with do notation.- Routing with path captures.
- Parameter parsing from cookies, path, query, and body.
- Helpers for redirects, headers, status codes, and errors.
{-# language OverloadedStrings #-}
--
import Network.Wai.Handler.Warp (run)
import Network.Wai.Responder
--
main :: IO ()
main = do
run 8080 $ app defaultResponderOpts () $ do
get "/" index
post "/echo/:name" echo
--
index :: ResponderM s a
index = html status200 $ "Hello World!"
--
echo :: ResponderM s a
echo = do
name <- param "name"
html status200 $ "Hello, " <> name
--
missing :: ResponderM s a
missing = html status404 $ "Not found..."
Responder is the successor to Twain.
Responder's API parametizes ResponderM
with application state.