2015-12-20 11 views

答えて

4

何のリソースが一致しないデフォルトのハンドラはpath_not_found応答者である:

しかし、あなたはファルコンAPIの_get_responder方法で見ることができるように、それはいくつかの猿のパッチなしでオーバーライドすることはできません。

は、私の知る限り見ることができるように、カスタムハンドラを使用するには、2つの異なる方法があります。

  1. は、デフォルトを使用し
  2. カスタムハンドラを呼び出すように、APIのクラスをサブクラス化し、_get_responderメソッドを上書きアプリケーションのいずれも一致しない場合は、任意のルートに一致するルート。ルートの代わりにsinkを使用することをお勧めします。したがって、同じ機能を持つ任意のHTTPメソッド(GET、POST ...)を取得できます。

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, '') 

あなたのコードは次のようになります。

関連する問題