Flask-RESTful - Return custom Response format
In addition to @Martijin Pieters' answer here - https://stackoverflow.com/a/20246014/1869562. Where you return a raw response object, Flask-Restful also allows you to set status code and headers in your return values directly.
So in your case, this should also work
class Foo(restful.Resource):
def get(self):
return something, 201, {'content-type': 'application/octet-stream'}
The default mediatype for Flask-REstful is 'application/json', so put should work as is.
Just return Flask response objects in your methods.
A response class allows you to provide custom headers (including the content-type): http://flask.pocoo.org/docs/api/#response-objects
What representation is used is determined by the request, the Accept
header mime type.
A request of application/octet-stream
will be responded to by using your binary
function.
If you need a specific response type from an API method, then you'll have to use flask.make_response()
to return a 'pre-baked' response object:
def get(self):
response = flask.make_response(something)
response.headers['content-type'] = 'application/octet-stream'
return response