Flask: Декоратор для проверки схемы JSON и JSON

У меня есть приложение колбы с вызовами, ожидающими полезную нагрузку JSON. Перед обработкой каждого вызова у меня есть двухэтапный процесс проверки ошибок:

Утверждение, что полезная нагрузка является допустимым JSONУтверждение, что полезная нагрузка JSON соответствует определенной схеме

Который реализован следующим образом:

@app.route('/activate', methods=['POST'])
def activate():
    request_id = request.__hash__()

    # Assert that the payload is a valid JSON
    try:
        input = request.json
    except BadRequest, e:
        msg = "payload must be a valid json"
        return jsonify({"error": msg}), 400

    # JSON Schema Validation
    try:
        validate(request.json, app.config['activate_schema'])
    except ValidationError, e:
        return jsonify({"error": e.message}), 400

Поскольку этот код дублируется во многих вызовах, мне интересно, смогу ли я элегантно перенести его в декоратор, что-то в виде:

@validate_json
@validate_schema(schema=app.config['activate_schema'])
@app.route('/activate', methods=['POST'])
def activate():
    ....

Проблема в том, чтоrequest Аргумент неявный: я могу ссылаться на него внутри функции, но это не параметр к нему. Поэтому я не уверен, как использовать его в декораторе.

Как я могу реализовать проверки правильности с помощью декораторов Python?

Ответы на вопрос(1)

Ваш ответ на вопрос