繁体   English   中英

Flask-restful:如何只响应请求('Accept':'application / json')?

[英]Flask-restful: How to only response to requests come with ('Accept':'application/json')?

我有一个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中格式良好,并且还设置了正确的标题。

class Books(Resource):
    def get(self):
        return jsonify(data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM