我有一个 json api APP,运行良好。现在我希望它只接受和响应 json,而不是响应 text/html 请求。 应用看起来像这样:
class Books(Resource):
def get(self):
return json.dumps(data)
有人可以帮忙吗? 谢谢。
最佳答案
您可以使用预处理请求处理程序来拒绝所有具有错误 MimeType 的请求。 Request
对象(未记录在案,但至少存在于 Flask 0.10 中)有一个名为 is_json
鉴于您的 Flask 应用程序称为应用程序,您可以使用类似的东西:
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 中的格式正确,并设置正确的 header 。
class Books(Resource):
def get(self):
return jsonify(data)
关于python - Flask-restful : How to only response to requests come with ('Accept' :'application/json' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27504157/