我有一个json api APP,运行良好。现在我希望它只接受和响应json,而不是对text / html请求的响应。 应用程序看起来像这样:
class Books(Resource):
def get(self):
return json.dumps(data)
有人可以帮忙吗? 感谢。
答案 0 :(得分:6)
您可以使用预处理请求处理程序拒绝具有错误MimeType的所有请求。有一个Request
对象的属性(没有记录,但至少在Flask 0.10上出现)名为is_json
鉴于你的Flask app被称为应用程序,你可以使用类似的东西:
from flask import request, abort, jsonify
@application.before_request
def only_json():
if not request.is_json:
abort(400) # or any custom BadRequest message
我还会使用Flask jsonify
函数来构建你的响应,它将确保响应在json中格式良好,并且还设置了正确的标题。
class Books(Resource):
def get(self):
return jsonify(data)