我分别使用servant
和Network.Wai.Application.Static
用于 json api 和静态文件服务。我想加入这两个应用程序,如果staticApp
服务失败,请求应该去jsonApp
。
我试着找出并阅读websocketsOr
它是如何做到的。Websockets或
我终于写道:
app :: NW.Application -> NW.Application -> NW.Application
app staticApp apiApp req respond =
staticApp req (\ response ->
do
if (Status.statusCode . NW.responseStatus $ response) < 300
then respond response
else apiApp req respond)
但似乎其他人(wai 本身)会这样做,处理许多可能的情况。但我找不到。
我缺少哪些边缘情况(例外??)以及我可以使用哪些其他 api 来做同样的事情?