Это маленький сервис для создания скриншотов, который можно поднять с помощью 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
.