Создайте собственный код ответа happstack - PullRequest
0 голосов
/ 17 мая 2018

Я пытался создать пользовательский ответ happstack для 405 "Method not allowed", поэтому, если кто-то вызовет API с помощью метода POST или PUT, он получит этот ответ.Я новичок в happstack.Есть идеи, как мне это сделать?

1 Ответ

0 голосов
/ 17 мая 2018

Скважина ok :: (FilterMonad Response m) => a -> m a реализована как [источник] :

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"
         ]
...