Ендпойнти
| Метод | Шлях | Опис |
| GET | /health | Стан сервісу |
| POST | /process | Обробка 1 або багатьох URL |
| POST | /batch | Масова обробка з per-item ops |
Тіла запитів
/process (багато URL)
{
"urls": ["https://.../a.jpg","https://.../b.jpg"],
"ops": {
"resize": {"w":800,"h":600,"fit":"cover"},
"contrast": -10, "warmth": 20, "grayscale": false,
"format": "jpg", "quality": 82
},
"simple_response": true, // ← прапорець для спрощеного респонсу
"concurrency": 6
}
/process (1 URL)
{
"url": "https://.../a.jpg",
"ops": { "resize": {"w":800,"h":600,"fit":"contain"} },
"simple_response": false
}
/batch (per-item ops)
{
"items":[
{ "url":"https://.../a.jpg", "ops":{"format":"webp","quality":80} },
{ "url":"https://.../b.jpg", "ops":{"resize":{"w":1000,"h":0}} }
],
"concurrency": 6
}
Відповіді
Детальна:
{
"ok": true, "count": 2, "elapsed_ms": 492,
"results": [{
"ok": true, "url":"https://.../a.jpg",
"processed_url":"https://api.../images/processed/2025/10/21/proc_abc.jpg",
"width":600,"height":600,"mime":"image/jpeg",
"params_used": { "...": "..." }
}, ...]
}
Спрощена (при simple_response = true):
{
"ok": true, "count": 2, "elapsed_ms": 492,
"urls": ["https://api.../proc_abc.jpg","https://api.../proc_def.jpg"]
}
Параметри ops
resize.w / resize.h (0 = авто), resize.fit: contain | cover | ignore
contrast -100..100, warmth -100..100, grayscale true/false
format jpg | png | webp, quality 0..100
У UI прапорець «Спрощена відповідь» мапиться на поле simple_response.