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

Атрибут detail

Атрибут detail принадлежит классу HTTPException и хранит текст или структуру, описывающую ошибку. Именно это значение FastAPI подставляет в поле detail JSON-ответа и отдаёт клиенту вместе с кодом status_code. Значением может быть строка, словарь или список - всё, что сериализуется в JSON.

Синтаксис

from fastapi import HTTPException exc = HTTPException(status_code=..., detail=...) exc.detail

Пример

Давайте выбросим исключение с текстовым описанием и посмотрим на ответ сервера:

from fastapi import FastAPI, HTTPException app = FastAPI() @app.get('/user/{name}') def user(name: str): if name != 'abcde': raise HTTPException( status_code=404, detail='user not found' ) return {'name': name}

Результат выполнения кода для адреса /user/xyz:

{"detail": "user not found"}

Пример

В качестве значения detail можно передать словарь с дополнительными полями:

from fastapi import FastAPI, HTTPException app = FastAPI() @app.get('/article/{id}') def article(id: int): if id != 1: raise HTTPException( status_code=404, detail={ 'message': 'article not found', 'id': id } ) return {'id': id, 'title': 'hello'}

Результат выполнения кода для адреса /article/5:

{"detail": {"message": "article not found", "id": 5}}

Пример

Атрибут detail можно прочитать у самого объекта исключения:

from fastapi import HTTPException exc = HTTPException(status_code=400, detail='bad request') res = exc.detail print(res)

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

"bad request"

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

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