Я только начинаю работать с haskell, и у меня возникают проблемы с базовым «эхо» REST-сервером.
Spock выглядел как хорошая отправная точка для REST-сервера, и хотя я получил основы монады State, но у меня возникли проблемы с пониманием того, как поставить runState
вокруг кода spock.
Вот код, который у меня есть до сих пор.
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Data.Monoid
import Web.Spock.Safe
import qualified Control.Monad.State as S
storeData :: String -> S.State String String
storeData val = do S.put val
return val
getData :: S.State String String
getData = do val <- S.get
return val
main :: IO ()
main =
runSpock 11350 $ spockT id $
do get "store" $
text "Would be a call to getData"
spockT
, который вам нужно будет указать дляm ~ State String
. Однако вы столкнетесь с точно такой же проблемой, как описано в этом ответе:State String
не будет автоматически сохраняться между вызовами обработчика. . - person Cactus   schedule 12.08.2015