【发布时间】:2018-05-17 19:10:17
【问题描述】:
我一直在尝试创建自定义happstack 响应405 "Method not allowed",因此如果有人使用POST 或PUT 方法调用API,他们将得到此响应。我是happstack 的新手。有什么想法可以做到吗?
【问题讨论】:
我一直在尝试创建自定义happstack 响应405 "Method not allowed",因此如果有人使用POST 或PUT 方法调用API,他们将得到此响应。我是happstack 的新手。有什么想法可以做到吗?
【问题讨论】:
ok :: (FilterMonad Response m) => a -> m a 函数实现为[src]:
ok :: (FilterMonad Response m) => a -> m a ok = resp 200
因此,它与您编写 ok 响应的方式相同,只是您应该使用带有自定义返回码的 resp :: (FilterMonad Response m) => Int -> b -> m b。
例如:
resp 405 "Method not allowed"
所以我们可以例如阻止 PUT 和 POST 请求,例如:
main :: IO ()
main = simpleHTTP nullConf $ msum
[ do method GET
ok $ "This is allowed.\n"
, do method PUT
(resp 405) $ "Method not allowed"
, do method POST
(resp 405) $ "Method not allowed"
]
【讨论】:
PUT 和POST?