5.0 KiB
Справочник API управления OSTP
Сервер OSTP предоставляет REST API для управления пользователями, просмотра статистики трафика и интерактивного редактирования конфигурации.
По умолчанию API слушает на порту 9090 (хост настраивается в файле конфигурации).
Авторизация
Все запросы к API (за исключением подписок) должны содержать заголовок Authorization с API-токеном (если токен включен в конфигурационном файле):
Authorization: Bearer <ваш_api_токен>
Или в упрощенном виде:
Authorization: <ваш_api_токен>
Формат ответов
Все ответы API возвращаются в формате JSON следующей структуры:
{
"ok": true,
"data": ...,
"error": null
}
В случае ошибки:
{
"ok": false,
"data": null,
"error": "Описание ошибки"
}
Список эндпоинтов
1. Статус сервера
Возвращает текущую версию, аптайм и количество пользователей.
- URL:
/api/server/status - Метод:
GET - Формат
data:{ "version": "0.2.30", "uptime_seconds": 12053, "active_users": 2, "total_users": 5 }
2. Получение текущего конфига
Запрашивает полное содержимое файла config.json с удалением комментариев для прямой модификации.
- URL:
/api/server/config - Метод:
GET - Формат
data: Полный JSON-конфиг сервера.
3. Обновление конфига
Записывает новый JSON конфигурации сервера в файл config.json на диске. Это автоматически вызывает hot-reload ядра (применение ключей доступа и лимитов).
- URL:
/api/server/config - Метод:
PUT - Тело запроса: JSON нового конфигурационного файла.
- Формат
data:trueв случае успешного сохранения.
4. Список клиентов и их статистики
Возвращает список всех зарегистрированных ключей доступа с их текущей загрузкой, скачиванием, активными сессиями и статусом подключения.
- URL:
/api/users - Метод:
GET - Формат
data:[ { "access_key": "ostp_key_sample1", "bytes_up": 2405020, "bytes_down": 491029402, "connections": 2, "limit_bytes": 10737418240, "online": true, "name": "Ноутбук" } ]
5. Создание клиента
Генерирует новый ключ доступа (или регистрирует пользовательский).
- URL:
/api/users - Метод:
POST - Тело запроса:
{ "access_key": "my_custom_key_optional", "name": "Имя клиента", "limit_bytes": 50000000000 } - Формат
data: Строка созданного ключа доступа.
6. Удаление клиента
Отзывает ключ доступа и сбрасывает все связанные активные сессии.
- URL:
/api/users/:key - Метод:
DELETE - Формат
data:"User removed"
7. Обновление клиента
Редактирует имя или лимит трафика для клиента.
- URL:
/api/users/:key - Метод:
PUT - Тело запроса:
{ "name": "Новое имя", "limit_bytes": 100000000000 } - Формат
data:"User updated"
8. Сброс счетчиков трафика
Обнуляет показания загрузки и скачивания для определенного пользователя.
- URL:
/api/users/{key}/reset - Метод:
POST - Формат
data:true
9. Ссылка подписки клиента
Возвращает ссылку подписки или конфигурационный файл для клиента. Авторизация по Bearer-токену не требуется (ключ авторизуется сам через URL).
- URL:
/api/subscribe/:key - Метод:
GET - Заголовки:
Accept: text/plain-> Возвращает текстовую ссылкуostp://<key>@<host>:<port>?...Accept: application/json-> Возвращает полный клиентский JSON-конфиг.