我已经按照以下Flask-RESTful文档定义了自定义响应格式。
app = Flask(__name__) api = restful.Api(app) @api.representation('application/octet-stream') def binary(data, code, headers=None): resp = api.make_response(data, code) resp.headers.extend(headers or {}) return resp api.add_resource(Foo, '/foo')
我有以下资源类。
class Foo(restful.Resource): def get(self): return something def put(self, fname): return something
我希望get()函数返回application/octet-stream类型,put()函数返回默认值application/json。
get()
application/octet-stream
put()
application/json
我该怎么做呢?关于这一点,文档不是很清楚。
使用哪种表示方式取决于request,Accept标头mime类型。
Accept
mime
的请求application/octet-stream将通过使用你的binary函数来响应。
application/octet-stream将
binary
如果你需要API方法中的特定响应类型,则必须使用flask.make_response()返回“预烘焙”响应对象:
flask.make_response()
def get(self): response = flask.make_response(something) response.headers['content-type'] = 'application/octet-stream' return response