Как сделать простой обработчик с помощью Haskell Spock
Я действительно изо всех сил пытаюсь понять веб-фреймворки Haskell. Мое большое зависание на этом param'
функция, которая, кажется, принимает только один параметр как строку и возвращает параметр формы (и параметр строки запроса???).
get "login"
loginView
post "login" $ do
email <- param' "email"
pass <- param' "password"
text ( email <> " " <> pass)
Все примеры, которые я вижу, обрабатывают маршруты в основной функции, однако я хотел бы создать контроллеры, подобные обработчикам. Я не могу найти способ использовать функцию магического параметра вне контекста основного приложения. Есть ли способ сделать это? Также эта функция 'param' принимает неявный параметр (как в scala). Я не понимаю, как он может получить параметры формы с одним аргументом.
Вот пример того, что нравится делать id.
LoginHandlers.hs
getLogin :: ???
getLogin = loginView
postLogin :: ???
postLogin = do
email <- param' "email"
pass <- param' "password"
text ( email <> " " <> pass )
Main.hs
app :: SpockM () MySession MyAppState ()
app = do
get "login" $
getLogin
post "login" $
postLogin
Также возможно ли получить параметры в виде карты вместо того, чтобы проходить один за другим через функцию param '?