Это маленький сервис для создания скриншотов, который можно поднять с помощью Docker Compose.
- Содержание
- Требования
- Установка
- Использование
- API документация
- Конфигурация
- Структура проекта
- Лицензия
- Docker
- Docker Compose
-
Склонируйте репозиторий:
git clone https://github.com/deus-developer/screenshoter.git cd screenshoter -
Поднимите сервисы с помощью Docker Compose:
docker-compose up -d
После того как сервис будет запущен, он станет доступен на локальном хосте по адресу http://127.0.0.1:8080.
Вы можете отправлять HTTP запросы к этому сервису для создания скриншотов.
Создает новый контекст для браузера.
- URL:
/settings - Метод:
POST - Тело запроса:
{
"name": "UUID контекста",
"viewport": {
"width": 1920,
"height": 1080
},
"geolocation": {
"latitude": 55.7558,
"longitude": 37.6176
},
"ignore_https_errors": true,
"java_script_enabled": true,
"user_agent": "строка user-agent",
"locale": "ru-RU",
"timezone": "Europe/Moscow",
"device_scale_factor": 1.0,
"is_mobile": false,
"has_touch": false,
"color_scheme": "light",
"accept_downloads": true,
"service_workers": "allow",
"bypass_csp": true,
"permissions": ["geolocation", "notifications"]
}-
Ответ:
- 200 OK:
true - 422 Unprocessable Entity: Ошибка валидации
- 200 OK:
Возвращает список всех созданных контекстов.
-
URL:
/settings/list -
Метод:
GET -
Ответ:
- 200 OK: Список объектов
BrowserSettings
- 200 OK: Список объектов
Возвращает информацию о контексте по его имени (UUID).
-
URL:
/settings/{name} -
Метод:
GET -
Параметры:
name: UUID контекста (строка)
-
Ответ:
- 200 OK: Объект
BrowserSettings - 422 Unprocessable Entity: Ошибка валидации
- 200 OK: Объект
Изменяет существующий контекст по его имени (UUID).
-
URL:
/settings/{name} -
Метод:
PATCH -
Параметры:
name: UUID контекста (строка)
-
Тело запроса:
{
"viewport": {
"width": 1920,
"height": 1080
},
"geolocation": {
"latitude": 55.7558,
"longitude": 37.6176
},
"ignore_https_errors": true,
"java_script_enabled": true,
"user_agent": "строка user-agent",
"locale": "ru-RU",
"timezone": "Europe/Moscow",
"device_scale_factor": 1.0,
"is_mobile": false,
"has_touch": false,
"color_scheme": "light",
"accept_downloads": true,
"service_workers": "allow",
"bypass_csp": true,
"permissions": ["geolocation", "notifications"]
}-
Ответ:
- 200 OK:
true - 422 Unprocessable Entity: Ошибка валидации
- 200 OK:
Создает скриншот страницы по заданному URL.
-
URL:
/screenshot -
Метод:
POST -
Параметры:
name: UUID контекста (строка, query параметр)
-
Тело запроса:
{
"url": "https://example.com",
"referer": "https://referer.com",
"omit_background": false,
"full_page": false,
"clip_settings": {
"x": 0,
"y": 0,
"width": 1920,
"height": 1080
},
"animations": "allow",
"timeout": 60,
"wait": 0
}-
Ответ:
- 200 OK: Успешный ответ
- 422 Unprocessable Entity: Ошибка валидации
В файле docker-compose.yml определены следующие сервисы:
- mongo: база данных MongoDB для хранения данных.
- screenshot-service: сервис для создания скриншотов.
MONGODB_DSN: строка подключения к MongoDB. По умолчаниюmongodb://mongo-server:27017/.MONGODB_DATABASE_NAME: имя базы данных MongoDB. По умолчаниюscreenshoter.PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: переменная окружения для Playwright, чтобы пропустить скачивание браузеров. Значение1.
docker-compose.yml: файл конфигурации для Docker Compose.volumes/: директория для хранения данных MongoDB и контекстов браузера.src/: исходный код сервиса.
Этот проект лицензируется под лицензией MIT. Подробности можно найти в файле LICENSE.