2018年7月27日金曜日

flasgger で 404 エラーをカスタマイズする方法

概要

flasgger の 404 はデフォルトだと HTML が返ってきます

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server.  If you entered the URL manually please check your spelling and try again.</p>

API の場合は JSON のほうが良いという場合がほとんどだと思います
今回は flasgger で 404 ページをカスタマイズする方法を紹介します

環境

  • macOS X 10.13.6
  • Python 3.6.5
  • flasgger 0.9.0

404 時のエラーレスポンスを返却するメソッドを追加

flask の errorhandler という機能を使います

app = Flask(__name__)
@app.errorhandler(404)
def not_found(error):
    return Response(
        json.dumps({'error': 'not found path'}),
        status=404
    )

これを適当な場所に定義すれば OK です
ちなみに必要な import は以下の通り

import json
from flask import Response
from flask import Flask

最後に

flasgger で 404 ページをカスタマイズする方法を紹介しました
flask の機能を使うことで解決することができます

flasgger は flask や marshmallow, apispec などいろいろなサードパティツールを使っているのでそれらを使うことで解決できることは多いと思います

参考サイト

0 件のコメント:

コメントを投稿