【发布时间】:2015-04-15 16:29:02
【问题描述】:
我正在使用 Flask 和 Flask-Restful 构建 API。 API 可能由不同类型的工具(网络应用程序、自动化工具等)访问,其中一项要求是提供不同的表示形式(为了示例,假设为 json 和 csv)
正如 restful 文档中解释的那样,根据内容类型更改序列化很容易,因此对于我的 CSV 序列化,我添加了以下内容:
@api.representation('text/csv')
def output_csv(data, code, headers=None):
#some CSV serialized data
data = 'some,csv,fields'
resp = app.make_response(data)
return resp
当使用 curl 并传递正确的-H "Accept: text/csv" 参数时它可以工作。
问题是,由于某些浏览器可能会直接路由到 url 以下载 csv 文件,因此我希望能够通过 url 参数强制我的序列化,例如 http://my.domain.net/api/resource?format=csv 其中 format=csv 会有效果和-H "Accept: text/csv"一样。
我已经阅读了 Flask 和 Flask-Restful 文档,但我不知道如何正确处理这个问题。
【问题讨论】:
标签: python flask flask-restful