Frask-RESTful – Devuelve el formato de respuesta personalizado

He definido un formato de respuesta personalizado según la documentación de Flask-RESTful de la siguiente manera.

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') 

Tengo la siguiente clase de recursos.

 class Foo(restful.Resource): def get(self): return something def put(self, fname): return something 

Quiero que la función get() devuelva el tipo de application/octet-stream y la función put() para devolver la application/json predeterminada.

¿Cómo voy a hacer esto? La documentación no es muy clara en este punto.

La representación que se utiliza está determinada por la solicitud , el tipo de mime del encabezado Accept .

Una solicitud de application/octet-stream será respondida usando su función binary .

Si necesita un tipo de respuesta específico de un método API, entonces tendrá que usar flask.make_response() para devolver un objeto de respuesta ” flask.make_response() “:

 def get(self): response = flask.make_response(something) response.headers['content-type'] = 'application/octet-stream' return response 

Simplemente devuelve los objetos de respuesta del matraz en tus métodos.

Una clase de respuesta le permite proporcionar encabezados personalizados (incluido el tipo de contenido): http://flask.pocoo.org/docs/api/#response-objects