Skip to content

Latest commit

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Gotenberg API

Библиотека Gotenberg API упрощает работу с endpoint API для генерации скриншотов gotenberg.dev, предоставляя тонкую обёртку над веб API и библиотекой HTTPX.

Она добавляет к обычным возможностям HTTPX свои схемы данных, а также удобные, часто используемые функции, но не мешает, при необходимости, спускаться ниже на уровень HTTP-запросов.

Установка

Вы можете установить библиотеку с помощью pip:

# Установить из публичного GitHub репозитория (рекомендуемый способ)
$ pip install git+https://github.com/devmanorg/gotenberg-api.git
# Установить из приватного GitLab репозитория (если у вас есть к нему доступ)
$ pip install git+https://gitlab.dvmn.org/dvmn/courses/fastapi/gotenberg-api.git

Использование

Библиотека использует асинхронный HTTPX клиент.

Для запуска требуется указать следующие настройки:

  • httpx.AsyncClient.base_url - базовый адрес Gotenberg API. Обязательная настройка.
  • ScreenshotHTMLRequest.width - ширина скриншота в пикселях. Обязательная настройка.
  • ScreenshotHTMLRequest.format - формат скриншота (может принимать значения jpeg, png, webp). По-умолчанию - jpeg.
  • ScreenshotHTMLRequest.wait_delay - время ожидания завершения анимаций на html-странице. По-умолчанию - 2 секунды.
  • опциональные настройки асинхронного клиента

Важно: время ожидания завершения анимаций должно быть меньше таймаута асинхронного клиента, иначе библиотека всегда будет возвращать TimeoutError.
Рекомендуемая разница между временем ожидания и таймаутом составляет от 2 до 5 секунд.

Пример запроса:

importhttpxfromgotenberg_apiimportGotenbergServerError, ScreenshotHTMLRequesttry:
asyncwithhttpx.AsyncClient(
base_url=settings_var.get().GOTENBERG_URL,
timeout=15,
) asclient:
screenshot_bytes=awaitScreenshotHTMLRequest(
index_html=raw_html,
width=1000,
format='png',
wait_delay=5,
).asend(client)
exceptGotenbergServerErrorase:
logger.error(e)
screenshot_bytes=None

Исключения

У библиотеки есть своё собственное исключение, которое через контекстный менеджер отлавливает исключение:

About

Клиентская библиотека для генерации скриншотов по HTML-коду с помощью публичного API Gotenberg

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages