РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
249 of 307 menu

Атрибут headers класса HTTPException

Атрибут headers принадлежит классу HTTPException и хранит словарь HTTP-заголовков, которые будут добавлены к ответу с ошибкой. Значение передаётся третьим параметром при создании исключения и по умолчанию равно None. Если заголовки не нужны, параметр можно опустить. Атрибут особенно полезен, когда требуется сообщить клиенту дополнительную информацию, например заголовок WWW-Authenticate при ошибке авторизации или Retry-After при ограничении запросов.

Синтаксис

HTTPException(status_code, detail, headers)

Атрибут доступен у экземпляра исключения:

exc.headers

Пример

Давайте поднимем исключение с заголовком X-Error:

from fastapi import FastAPI, HTTPException app = FastAPI() @app.get('/user') def get_user(): raise HTTPException( status_code=404, detail='user not found', headers={'X-Error': 'UserNotFound'} )

Результат ответа для адреса /user:

{"detail": "user not found"}

При этом в заголовках ответа появится X-Error: UserNotFound.

Пример

Давайте используем заголовок WWW-Authenticate при ошибке авторизации:

from fastapi import FastAPI, HTTPException, Header app = FastAPI() @app.get('/article') def get_article(token: str = Header(None)): if token != 'abcde': raise HTTPException( status_code=401, detail='invalid token', headers={'WWW-Authenticate': 'Bearer'} ) return {'article': 'hello'}

Результат ответа при неверном токене:

{"detail": "invalid token"}

Клиент получит заголовок WWW-Authenticate: Bearer вместе с кодом состояния 401.

Пример

Давайте прочитаем атрибут headers у созданного исключения:

from fastapi import FastAPI, HTTPException app = FastAPI() @app.get('/') def index(): exc = HTTPException( status_code=429, detail='too many requests', headers={'Retry-After': '60'} ) return {'headers': exc.headers}

Результат выполнения кода:

{"headers": {"Retry-After": "60"}}

Смотрите также

  • класс HTTPException,
    который представляет HTTP-ошибку в FastAPI
  • атрибут status_code,
    который задаёт код состояния ответа
  • атрибут detail,
    который содержит описание ошибки
  • класс WebSocketException,
    который представляет ошибку WebSocket-соединения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить