🎬 API · видеохостинг

Mock
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 }