Как сделать простой обработчик с помощью 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 '?

0 ответов

Другие вопросы по тегам