Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Обзор REST API

OpenPR предоставляет RESTful API, построенный на Rust и Axum, для программного доступа ко всем функциям платформы. API поддерживает форматы запросов/ответов JSON и аутентификацию на основе JWT.

Базовый URL

http://localhost:8080/api

В продакшен-развёртываниях за обратным прокси (Caddy/Nginx) API обычно проксируется через URL фронтенда.

Формат ответа

Все ответы API следуют единообразной структуре JSON:

Успех

json
{
  "code": 0,
  "message": "success",
  "data": { ... }
}

Ошибка

json
{
  "code": 400,
  "message": "Detailed error description"
}

Распространённые коды ошибок:

КодЗначение
400Некорректный запрос (ошибка валидации)
401Не авторизован (отсутствующий или недействительный токен)
403Запрещено (недостаточно прав)
404Не найдено
500Внутренняя ошибка сервера

Категории API

КатегорияБазовый путьОписание
Аутентификация/api/auth/*Регистрация, вход, обновление токена
Проекты/api/workspaces/*/projects/*CRUD, участники, настройки
Задачи/api/projects/*/issues/*CRUD, назначение, метки, комментарии
Доска/api/projects/*/boardСостояние kanban-доски
Спринты/api/projects/*/sprints/*CRUD спринтов и планирование
Метки/api/labels/*CRUD меток
Поиск/api/searchПолнотекстовый поиск
Предложения/api/proposals/*Создание, голосование, отправка, архивирование
Управление/api/governance/*Конфигурация, журналы аудита
Решения/api/decisions/*Записи решений
Оценки доверия/api/trust-scores/*Оценки, история, апелляции
Вето/api/veto/*Вето, эскалация
AI-агенты/api/projects/*/ai-agents/*Управление агентами
AI-задачи/api/projects/*/ai-tasks/*Назначение задач
Токены ботов/api/workspaces/*/botsCRUD токенов ботов
Загрузка файлов/api/v1/uploadЗагрузка файлов multipart
Webhooks/api/workspaces/*/webhooks/*CRUD webhooks
Администрирование/api/admin/*Системное управление

Полный справочник API см. в Справочнике эндпоинтов.

Тип содержимого

Все запросы POST/PUT/PATCH должны использовать Content-Type: application/json, за исключением загрузки файлов, которая использует multipart/form-data.

Пагинация

Эндпоинты списков поддерживают пагинацию:

bash
curl "http://localhost:8080/api/projects/<id>/issues?page=1&per_page=20" \
  -H "Authorization: Bearer <token>"

Полнотекстовый поиск

Эндпоинт поиска использует PostgreSQL полнотекстовый поиск по задачам, комментариям и предложениям:

bash
curl "http://localhost:8080/api/search?q=authentication+bug" \
  -H "Authorization: Bearer <token>"

Проверка работоспособности

API-сервер предоставляет эндпоинт работоспособности, который не требует аутентификации:

bash
curl http://localhost:8080/health

Следующие шаги

Released under the Apache-2.0 License.