Перехватить ошибку проверки из класса пространства имен Flask restplus
В настоящее время анализатор пространства имен проверяет аргументы запроса и выдает ошибку вроде
{
"errors": {
"file": "Missing required parameter in an uploaded file"
},
"message": "Input payload validation failed"
}
Из приложения фляги я хочу перехватить или обработать эти исключения и отправить настраиваемый ответ для согласованности, например { "errors": { "file": "Отсутствует обязательный параметр в загруженном файле" }, "message": "Проверка ввода полезной нагрузки fail ", "id": " некоторый идентификатор клиента "}
Можно ли обработать это исключение на уровне приложения вместо того, чтобы делать это для каждого API?
0 ответов
Согласно этой проблеме https://github.com/noirbizarre/flask-restplus/issues/530 существует обходной путь для создания персонализированного сообщения.
Тем не менее, это можно реализовать с помощью определения обработчика ошибок BadRequest и изменить атрибут данных:
@api.errorhandler(BadRequest)
def bad_request(self):
self.data.update({'id': 'some customer id'})
return {}, 400
Однако нет чистого способа избежать возврата пустого словаря, поскольку он отбрасывается.