Table of contents

FastAPI

pip install hawk-python-sdk[fastapi]

Импортируйте модуль в проект:

from hawk_python_sdk.modules.fastapi import HawkFastapi

Создайте экземпляр FastAPI и инициализируйте HawkFastapi, передав приложение и интеграционный токен проекта:

from fastapi import FastAPI from hawk_python_sdk.modules.fastapi import HawkFastapi app = FastAPI() hawk = HawkFastapi({ 'app_instance': app, 'token': 'ВАШ_ТОКЕН' })

После этого все необработанные ошибки FastAPI-приложения будут автоматически отправляться в Хоук.

Если вы хотите отправлять ошибки из блоков try/except, используйте ручную отправку событий так же, как в базовой Python-интеграции.

Вы можете отправить в Hawk любое исключение вручную. Подробности см. в инструкции для Python Catcher.

Дополнительный контекст передаётся так же, как и в базовой Python-интеграции.

Данные пользователя также можно передавать так же, как и в базовой Python-интеграции.

Когда событие обрабатывается через FastAPI Catcher, к нему добавляются данные HTTP-запроса.

Поле Тип Описание
url str URL запроса
method str HTTP-метод запроса
headers dict Заголовки запроса
cookies dict Cookies запроса
params dict Параметры запроса

Для базовой инициализации нужно передать экземпляр приложения FastAPI и интеграционный токен проекта:

from fastapi import FastAPI from hawk_python_sdk.modules.fastapi import HawkFastapi app = FastAPI() hawk = HawkFastapi({ 'app_instance': app, 'token': 'ВАШ_ТОКЕН' })

Если нужно использовать кастомный Хоук-сервер, передайте словарь с параметрами:

hawk = HawkFastapi({ 'app_instance': app, 'token': 'ВАШ_ТОКЕН', 'collector_endpoint': 'https://<id>.k1.hawk.so', })
Параметр Тип Обязательный Описание
app_instance FastAPI да Экземпляр приложения FastAPI
token str да Интеграционный токен проекта
release str нет Название релиза для функции Suspected Commits
collector_endpoint string нет Адрес коллектора для отправки событий
context dict нет Дополнительный контекст, который будет отправляться с каждым событием
before_send Callable[[dict], None] нет Позволяет отфильтровать данные перед отправкой в Хоук
set_user Callable[[Request], User] нет Позволяет задавать пользователя для каждого запроса на основе объекта FastAPI Request
with_addons bool нет Добавлять ли данные FastAPI-запроса в событие

См. требования базовой Python-интеграции.

Дополнительно для FastAPI нужен:

  • fastapi