Misc. tweaks to the docs in preparation for 0.2.0rc1, including:
* Edit middleware docs for clarity and correctness
* Use Warning or Tip headers instead of Note, where appropriate
* Update sphinx config regarding author and copyright
1.3 KiB
1.3 KiB
Hooks
Falcon supports before and after hooks. You install a hook simply by applying one of the decorators below, either to an individual responder or to an entire resource.
For example, consider this hook that validates a POST request for an image resource:
def validate_image_type(req, resp, resource, params):
if req.content_type not in ALLOWED_IMAGE_TYPES:
msg = 'Image type not allowed. Must be PNG, JPEG, or GIF'
raise falcon.HTTPBadRequest('Bad request', msg)You would attach this hook to an on_post responder like
so:
@falcon.before(validate_image_type)
def on_post(self, req, resp):
passOr, suppose you had a hook that you would like to apply to all responders for a given resource. In that case, you would simply decorate the resource class:
@falcon.before(extract_project_id)
class Message(object):
def on_post(self, req, resp):
pass
def on_get(self, req, resp):
passFalcon middleware components <middleware> can also be
used to insert logic before and after requests. However, unlike hooks,
middleware components <middleware> are triggered
globally for all requests.
falcon