我有一个 wai/warp 应用程序。如何处理发布请求?我有这个:
app :: Application
app request respond =
respond $ case rawPathInfo request of
"/" -> responseFile status200 ............
"/some_post_req/" -> .....
如何指定some_post_req
必须是 POST?
我有一个 wai/warp 应用程序。如何处理发布请求?我有这个:
app :: Application
app request respond =
respond $ case rawPathInfo request of
"/" -> responseFile status200 ............
"/some_post_req/" -> .....
如何指定some_post_req
必须是 POST?
它应该像比较Network.Wai.requestMethod
against的结果一样简单Network.Wai.methodPost
:
app request respond
| requestMethod request == methodPost
= respond $ case rawPathInfo request of
{- handle POST routes -}
| otherwise
= {- handle other request methods -}
methodPost
由于, , &c.有常量methodGet
,您不妨使用它们,但Method
它是 的别名ByteString
,因此您也可以使用OverloadedStrings
扩展名:
{-# LANGUAGE OverloadedStrings #-}
然后与字符串文字进行比较:
requestMethod request == "POST"
或模式匹配:
case requestMethod request of
"POST" -> {- … -}
"GET" -> {- … -}
…