AppEngineでの開発にwebapp2を使用しています。私がやりたいのは、エラーが発生した場合にカスタムJSON形式の応答を送信することです。たとえば、リクエストの長さがしきい値よりも長い場合、HTTP400とレスポンスボディで応答します
{'error':'InvalidMessageLength'}
webapp2には、特定の例外にエラーハンドラーを割り当てるオプションがあります。例えば:
app.error_handlers[400] = handle_error_400
handle_error_400は次のとおりです。
def handle_error_400(request, response, exception):
response.write(exception)
response.set_status(400)
がwebapp2.RequestHandler.abort(400)
実行されると、上記のコードが実行されます。
上記の設定に基づいて、動的に異なる応答形式(HTMLとJSON)を使用するにはどうすればよいですか?つまり、どのようにして異なるバージョンのhandle_error_400
関数を呼び出すことができるのでしょうか。