Spec-Zone.ru › Falcon 1.3

Обработчики

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 компоненты middleware также могут быть использованы для вставки логики до и после запросов. Однако, в отличие от обработчиков, компоненты middleware срабатывают глобально для всех запросов.

falcon.before(action) [source]

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

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

Функция вида func(req, resp, resource, params), где resource — ссылка на экземпляр класса ресурса, связанного с запросом, и params — словарь имён полей URI Template, если таковые имеются, который будет передан обработчику ресурса в качестве 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.3.0/api/hooks.html

Spec-Zone.ru

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