5
Falcon(-Framework)が特定の要求のルートを見つけられなかった場合、404が返されます。このデフォルトハンドラをどのようにオーバーライドできますか?ハンドラをカスタムレスポンスで拡張したいと思います。経路が一致しない場合のFalconのデフォルトエラーハンドラのオーバーライド
Falcon(-Framework)が特定の要求のルートを見つけられなかった場合、404が返されます。このデフォルトハンドラをどのようにオーバーライドできますか?ハンドラをカスタムレスポンスで拡張したいと思います。経路が一致しない場合のFalconのデフォルトエラーハンドラのオーバーライド
何のリソースが一致しないデフォルトのハンドラはpath_not_found応答者である:
しかし、あなたはファルコンAPIの_get_responder方法で見ることができるように、それはいくつかの猿のパッチなしでオーバーライドすることはできません。
は、私の知る限り見ることができるように、カスタムハンドラを使用するには、2つの異なる方法があります。
2番目のオプションはお勧めです。
import falcon
class HomeResource:
def on_get(self, req, resp):
resp.body = 'Hello world'
def handle_404(req, resp):
resp.status = falcon.HTTP_404
resp.body = 'Not found'
application = falcon.API()
application.add_route('/', HomeResource())
# any other route should be placed before the handle_404 one
application.add_sink(handle_404, '')
:
あなたのコードは次のようになります。