Как настроить ответ на ошибку проверки в Django REST Framework?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как настроить ответ на ошибку проверки в Django REST Framework?

Сообщение Anonymous »

Я разрабатываю RESTful API с использованием Django REST Framework (DRF), и мне нужно реализовать общий механизм обработки ошибок для различных ошибок проверки, возникающих во всем приложении, включая, помимо прочего, сбои аутентификации JWT.при возникновении ошибок проверки DRF возвращает ответы об ошибках по умолчанию, которые могут быть неудобными или несогласованными для разных конечных точек. Например, ошибка проверки токена JWT выдает ответ, который выглядит следующим образом:

Код: Выделить всё

{
"detail": "Given token not valid for any token type",
"code": "token_not_valid",
"messages": [
{
"token_class": "AccessToken",
"token_type": "access",
"message": "Token is invalid or expired"
}
]
}
Я хотел бы стандартизировать ответы на ошибки во всем приложении, чтобы улучшить взаимодействие с пользователем. В частности, я хочу создать общую функцию, которая может возвращать структурированный ответ для всех ошибок проверки в следующем формате:

Код: Выделить всё

{
"status": false,
"responseCode": 0,
"message": "Validation ",
"data": {}
}
Я попробовал, создав custom_Exception_handler

Код: Выделить всё

def custom_exception_handler(exc, context):
response = exception_handler(exc, context)

if response is not None:
custom_response_data = {
'status': False,
'responseCode': 0,
'message': 'Validation error',
'data': {}
}

if isinstance(response.data, dict):
errors = {}
for field, detail in response.data.items():
if isinstance(detail, list):
errors[field] = detail[0] if detail else 'Invalid input.'
elif isinstance(detail, dict):
errors[field] = " | ".join(str(v) for v in detail.values())
else:
errors[field] = str(detail)

custom_response_data['message'] = " | ".join(errors.values())
custom_response_data['data'] = errors

response.data = custom_response_data
return response
Но это не дает того, что я хочу

Подробнее здесь: https://stackoverflow.com/questions/790 ... -framework
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как настроить ответ на ошибку проверки в Django REST Framework?
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Django-rest-framework {"detail": "Учетные данные для аутентификации не предоставлены." } с помощью django-rest-knox
    Anonymous » » в форуме Python
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между Django и Django Rest Framework?
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Внутренняя функция выдает ошибку в Django Rest Framework
    Гость » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Гость
  • Django Rest Framework SimpleJWT – удаление переменной, ссылающейся на «request.body», вызывает ошибку «RawPostDataExcept
    Anonymous » » в форуме Python
    0 Ответы
    47 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»