Контекст: изучение Haskell. Не хочу ввязываться в TH и QQ прямо сейчас. Нужна быстрая и грязная передняя часть, которая прямолинейна и понятна. Выбрал Скотти. Однако: необходимо взаимодействие от и до внешнего интерфейса. Можно использовать именованные параметры (код ниже). HTML (landing.html
) кнопка, отправляющая youclickedme текстовое поле, и кнопка, которая отправляет содержимое текстового поля, используя GET
. Очевидно, что я могу использовать POST/GET
между страницами, но есть ли более быстрый способ передачи параметров спереди назад и наоборот?
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Network.HTTP.Types.Status
import Web.Scotty
import Data.Monoid
myWayz :: ScottyM ()
myWayz = do
get "/" home
get "/namedparam/:name" $ do
name <- param "name"
case name of
"youclickedme" -> text ("reflector: " <> name)
"mytext" -> text ("reflector: " <> name)
"discard" -> discard
_ -> text ("reflector: " <> name)
home :: ActionM ()
home = do
setHeader "Content-Type" "text/html"
file "landing.html"
discard :: ActionM ()
discard = do
setHeader "Content-Type" "text/html"
file $ "discarded.html"
main :: IO ()
main = scotty 666 myWayz