Spec-Zone.ru › Falcon 1.2

Обработчики

Falcon поддерживает обработчики до и после. Вы устанавливаете обработчик, просто применив один из нижеприведённых декораторов, либо к отдельному обработчику, либо к целому ресурсу.

Например, рассмотрим этот обработчик, который валидирует POST-запрос для ресурса изображения:

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)

Вы бы прикрепили этот обработчик к on_post обработчику следующим образом:

@falcon.before(validate_image_type)
def on_post(self, req, resp):
    pass

Или, предположим, у вас есть обработчик, который вы хотели бы применить к всем обработчикам для данного ресурса. В этом случае вы просто добавите декоратор к классу ресурса:

@falcon.before(extract_project_id)
class Message(object):
    def on_post(self, req, resp):
        pass

    def on_get(self, req, resp):
        pass

Falcon компоненты промежуточного программного обеспечения также могут использоваться для вставки логики до и после запросов. Однако, в отличие от обработчиков, компоненты промежуточного программного обеспечения вызываются глобально для всех запросов.

falcon.before(action) [source]

Декоратор для выполнения заданной функции действия до обработчика.

Параметры: action (callable) –

Функция вида func(req, resp, resource, params), где resource - ссылка на экземпляр класса ресурса, связанный с запросом, и params - словарь имён полей шаблона URI, если таковые имеются, которые будут переданы обработчику ресурса в качестве аргументов kwargs.

Примечание

Обработчики могут вводить дополнительные параметры по мере необходимости. Например:

def do_something(req, resp, resource, params):
    try:
        params['id'] = int(params['id'])
    except ValueError:
        raise falcon.HTTPBadRequest('Invalid ID',
                                    'ID was not valid.')

    params['answer'] = 42
falcon.after(action) [source]

Декоратор для выполнения заданной функции действия после обработчика.

Параметры: action (callable) – Функция вида func(req, resp, resource), где resource - ссылка на экземпляр класса ресурса, связанный с запросом

© 2012–2016 by Rackspace Hosting, Inc. and other contributors
Licensed under the Apache License, Version 2.0.
https://falcon.readthedocs.io/en/1.2.0/api/hooks.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API