#! /usr/bin/env nix-shell
#! nix-shell -i runhaskell -p 'ghc.withPackages(pkgs: with pkgs; [Spock])'
{-# LANGUAGE OverloadedStrings #-}
import Data.Monoid
( (<>) )
import Web.Spock
( SpockM, runSpock, spock, get, text#! /usr/bin/env nix-shell
#! nix-shell -i runhaskell -p 'ghc.withPackages(pkgs: with pkgs; [Spock])'
{-# LANGUAGE OverloadedStrings #-}
import Data.Monoid
( (<>) )
import Web.Spock
( SpockM, runSpock, spock, get, textoperator that combines two path components
, (<//>)placeholder for a path parameter
, var )
import Web.Spock.Config
( SpockCfg ( spc_csrfProtection )
, PoolOrConn ( PCNoDatabase )
, defaultSpockCfg
)
data AppSession = EmptySession
data AppState = EmptyState
main :: IO ()
main = do
defConfig <- defaultSpockCfg EmptySession PCNoDatabase EmptyState
let config = defConfig { spc_csrfProtection = True }
runSpock 5000 (spock config' webapp)
webapp :: SpockM () AppSession AppState ()
webapp = doThis route handles GET /hola/<placeholder>.
Try visiting:
get ("hola" <//> var) $ \name -> do
text ("Hola " <> name <> "! ¿Qué pasó?")