12345678910111213141516171819202122 |
- {-# LANGUAGE OverloadedStrings #-}
- import Yesod.Core
- import Data.Aeson
- import Data.Monoid ((<>))
- import Data.Text (Text, pack)
- people :: [(Text, Int)]
- people = [("Alice", 25), ("Bob", 43), ("Charlie", 37)]
- main = warp 3000 $ liteApp $ do
- onStatic "people" $ dispatchTo getPeople
- onStatic "person" $ withDynamic $ dispatchTo . getPerson
- getPeople = return $ toJSON $ map fst people
- getPerson name =
- case lookup name people of
- Nothing -> notFound
- Just age -> selectRep $ do
- provideRep $ return $ object ["name" .= name, "age" .= age]
- provideRep $ return $ name <> " is " <> pack (show age) <> " years old"
|