Описание
Общий обзор программного интерфейса приложения ПК «Отаскрайб»
Данный API реализован на FastAPI и предоставляет набор REST-эндпоинтов для работы с авторизацией, загрузкой файлов, управлением проектами, пользователями, ролями и отчётами. Все запросы, кроме публичных (например, health-check), защищены схемой OAuth2 Password Flow и требуют передачи access_token
в заголовке Authorization: Bearer {token}
.
Аутентификация
- Схема: OAuth2 Password Grant
- Точка входа:
POST /api/auth/login
- Заголовок:
user-agent
(обязательный) - Параметры тела:
grant_type
,username
,password
(обязательные),scope
,client_id
,client_secret
(опционально).
После успешного вызова выдаётся JSON с полями access_token
и token_type
. Токен используется для доступа ко всем защищённым ресурсам.
Все подробные схемы запросов, параметры и примеры ответов описаны в соответствующих разделах документации.
Сценарий использования
Авторизация
Отправьте запрос для получения токена:
POST /api/auth/login
Content-Type: application/json
{"username":"<user>", "password":"<pass>"}
В ответе вы получите access_token
. Добавьте его в заголовок всех последующих запросов:
Authorization: Bearer <access_token>
Если вы создаёте приложение для сторонних пользователей, обратитесь в поддержку за client_id
и client_secret
.
На личный аккаунт действуют лимиты, и его нельзя использовать в продуктах.
Документация по интеграции собственных приложений доступна по запросу.
Проверка возможности загрузки файла
POST /api/uploads/could_upload
Authorization: Bearer <access_token>
Content-Type: application/json
{"mime_type":"audio/mpeg", "size":1234567}
Если ответ без ошибок, переходите к загрузке.
Загрузка медиа-файла
POST /api/uploads/upload_file
Authorization: Bearer <access_token>
Content-Type: multipart/form-data
file: @/path/to/file.mp3
В ответе вы получите project_id
— сохраните его.
Создание задачи на расшифровку
POST /api/project/create_task
Authorization: Bearer <access_token>
Content-Type: application/json
{
"project_id":"<project_id>",
"task_type":"transcription",
"params":{ /* ваши параметры */ }
}
Сохраните response_timestamp
для опроса.
Опрос статуса задачи (Polling)
GET /api/project/<project_id>?last_update_timestamp=<response_timestamp>
Authorization: Bearer <access_token>
Формирование резюме
POST /api/project/create_task
Authorization: Bearer <access_token>
Content-Type: application/json
{
"project_id":"<project_id>",
"task_type":"summarization",
"template":"<имя_шаблона>",
"params": { /* параметры */ }
}
Результат опрашивайте аналогично предыдущему шагу.
Формирование протокола
POST /api/reports/generate_report
Authorization: Bearer <access_token>
Content-Type: application/json
{ /* параметры для отчёта */ }