Yesodサンプル

なにはともあれサンプルを書いてみる

まずはサンプル。

{-# LANGUAGE TypeFamilies, QuasiQuotes, TemplateHaskell
 , MultiParamTypeClasses, OverloadedStrings #-}

import Yesod

data HelloWorld = HelloWorld

mkYesod "HelloWorld" [parseRoutes|
/ HomeR  GET
/page1 Page1R GET
/page2 Page2R GET
|]

instance Yesod HelloWorld where
  approot _ = ""

getHomeR  = defaultLayout [whamlet|<a href=@{Page1R}>Go to Page1!|]
getPage1R = defaultLayout [whamlet|<a href=@{Page2R}>Go to page2!|]
getPage2R = defaultLayout [whamlet|<a href=@{HomeR}>Go to Home!|]

main = warpDebug 3000 HelloWorld

このファイルを適当な名前で保存してrunghcで動かすと、めでたくWebアプリが出来上がります!
お手軽。