GET
/videos список всех видео
Получить массив видео с пагинацией (limit, page).
GET /videos?limit=3&page=1
Response:
{
"data": [
{ "id": 1, "title": "Лучшие моменты", "views": 12450, "likes": 342, "duration": 186 },
{ "id": 2, "title": "Как работает API", "views": 8700, "likes": 211, "duration": 312 },
{ "id": 3, "title": "Краткий гайд", "views": 5200, "likes": 98, "duration": 94 }
],
"pagination": { "total": 12, "page": 1, "limit": 3 }
}
GET
/videos/:id конкретное видео
Получить детальную информацию по ID видео.
GET /videos/2
Response:
{
"id": 2,
"title": "Как работает API",
"description": "Подробный разбор эндпоинтов и аутентификации.",
"views": 8700,
"likes": 211,
"dislikes": 18,
"duration": 312,
"tags": ["api", "tutorial", "backend"]
}
POST
/videos создать видео
Добавить новое видео (требуется токен).
POST /videos
Authorization: Bearer <token>
Body:
{
"title": "Новый ролик",
"description": "Описание видео",
"duration": 120,
"tags": ["новое", "премьера"]
}
Response:
{ "id": 13, "title": "Новый ролик", "createdAt": "2026-08-15T14:30:00Z" }
PUT
/videos/:id обновить видео
Обновить данные видео (только для автора).
PUT /videos/5
Authorization: Bearer <token>
Body:
{
"title": "Обновлённое название",
"description": "Новое описание",
"tags": ["обновление", "v2"]
}
Response:
{ "success": true, "updated": { "id": 5, "title": "Обновлённое название" } }
DELETE
/videos/:id удалить видео
Удалить видео по ID (автор или модератор).
DELETE /videos/8
Authorization: Bearer <token>
Response:
{ "success": true, "message": "Видео #8 удалено" }
GET
/search поиск по видео
Поиск видео по заголовку или тегам. Параметр q.
GET /search?q=api&limit=2
Response:
{
"results": [
{ "id": 2, "title": "Как работает API", "views": 8700 },
{ "id": 7, "title": "API для начинающих", "views": 3400 }
],
"total": 4
}