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

标签 python json api rest flask

我有一个 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/

相关文章:

python - 迭代字典

java - 安卓 : BasicSyncAdapter with parser JSON ANDROID

java - 如何通过 ID 获取其他用户信息(用户名、名字)? [ key 斗篷]

java - 从 Cobol 程序中使用 Java API

python - 使用python将excel数据导入到类实例中

javascript - 如何在 python selenium 中禁用 PhantomJS 的屏幕截图和 javascript?

Maya 和其他 3d 应用程序的 python 版本

javascript - 无法检查从 json 编码的 php 数组准备的 javascript json 中的对象值

java - 如何将表示为字符串的列表转换为列表?

linux - 如何在 Linux 中打印处理器的一个特定核心上列出的所有进程?