ResponseΒΆ
Use Blueprint.response to specify a
Schema class or instance to serialize the
response and a status code (defaults to 200).
In the following examples, the GET and PUT methods return an instance
of Pet serialized with PetSchema:
@blp.route('/<pet_id>')
class PetsById(MethodView):
@blp.response(PetSchema)
def get(self, pet_id):
return Pet.get_by_id(pet_id)
@blp.arguments(PetSchema)
@blp.response(PetSchema)
def put(self, update_data, pet_id):
pet = Pet.get_by_id(pet_id)
pet.update(update_data)
return pet
Here, the DELETE returns an empty response so no schema is specified.
@blp.route('/<pet_id>')
class PetsById(MethodView):
@blp.response(code=204)
def delete(self, pet_id):
Pet.delete(pet_id)
If a view function returns a list of objects, the Schema must be instanciated with many=True.
@blp.route('/')
class Pets(MethodView):
@blp.response(PetSchema(many=True))
def get(self, args):
return Pet.get()
Note
Even if a view function returns an empty response with a default
200 code, decorating it with
Blueprint.response is useful anyway, to return
a proper Flask Response object.