2017-09-14 3 views
0

に記載されている指示に従い、フラスコレススレッドAPIにカスタムエラーコードを追加しようとしていますが、正しい応答が得られず、NameError: global name 'UnsupportedMediaType' is not definedメッセージが表示されています。私はここで間違って何をしていますか?flask_restfulのカスタムエラーハンドラNameError

# -*- coding: utf-8 -*- 

from flask import Flask, request 
from flask_restful import Resource, Api 

import service 

errors = { 
    'UnsupportedMediaType': { 
     'message': 'Unsupported Media Type', 
     'status': 415 
    } 
} 

app = Flask(__name__) 
api = Api(app, errors=errors) 

class Service(Resource): 
    def post(self): 
     if request.is_json: 
      data = request.get_json() 
      return service.handler(args['data']) 
     else: 
      raise UnsupportedMediaType 

api.add_resource(Service, '/') 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', debug=True) 

答えて

1

エラーハンドラを関数に格納する必要があります。このように:あなたが望むよう

def error(exception): return {some json error data with the message 'exception'}

今はエラーハンドラを呼び出すことができます。

OR

あなたはそのためにフラスコのエラーハンドラのデコレータを使用することができます。 Heres the link