Falcon
アプリケーションのミドルウェアを作成しています。エラーが発生したら、エラーを発生させ、プロセスを中断し、カスタム応答を返します。次のようになります。
{
"status": 503,
"message": "No Token found. Token is required."
}
しかし、標準Falcon
エラーの実装では、応答にカスタム フィールドを設定できません。
この問題を最も適切に解決するにはどうすればよいですか?
Falcon
アプリケーションのミドルウェアを作成しています。エラーが発生したら、エラーを発生させ、プロセスを中断し、カスタム応答を返します。次のようになります。
{
"status": 503,
"message": "No Token found. Token is required."
}
しかし、標準Falcon
エラーの実装では、応答にカスタム フィールドを設定できません。
この問題を最も適切に解決するにはどうすればよいですか?
多くの時間を費やした後、私はこの問題を非常に興味深い方法で解決しました。コードを try/catch ブロックに入れ、エラーがキャッチされたときにエラーを発生させないことに決め、応答ステータスと本文を設定した後にキーワードFalcon
を書き込もうとしました。メソッドがであるため、何も返されません。次のようになります。return
void
resp.status = falcon.HTTP_403
resp.body = body
return
raise falcon.HTTPError(falcon.HTTP_503, 'No Token found. Token is required.')