Сокол поднимая нестандартное исключение json - PullRequest
0 голосов
/ 14 марта 2019

Когда я поднимаю falcon.HTTPNotFound, я получаю JSON

 {
    "title": "404 Not Found",
    "description": {
        "message": "Model mymodel does not exist!",
        "model_id": "mymodel"
    }
}

, но вместо этого я хочу отправить ниже

{
   "message": "Model mymodel does not exist!",
   "model_id": "mymodel"
}

как мне добиться этого в Falcon?

def expect_model_existence(req, resp, resource, params, require_exists):

    model_id = params['model_id']

    if require_exists and not Model.exists(model_id=model_id):
        response = {"message": f"Model {model_id} does not exist!", "model_id": model_id}
        raise falcon.HTTPNotFound(description=response)
    elif not require_exists and Model.exists(model_id=model_id):
        response = {"message": f"Model {model_id} already exists!", "model_id": model_id}
        raise falcon.HTTPConflict(description=response)

Определяет функцию для проверки существования модели и применяется как ранее ловушка

@falcon.before(expect_model_existence, True)
    def on_delete(self, req, resp, model_id):
       pass
...