4.2 KiB
4.2 KiB
API отчётов по спринтам
REST API для веб-интерфейса сводки по спринтам. Все ответы — JSON в кодировке UTF-8.
Базовый URL
| Окружение | URL |
|---|---|
| Docker (nginx) | http://localhost/api |
| Локальная разработка | http://localhost:8080/api |
Точка входа: public/index.php.
Общие сведения
- Поддерживаются только GET-запросы (чтение данных).
- Заголовок ответа:
Content-Type: application/json; charset=utf-8. - Авторизация не требуется.
- Даты и время возвращаются в формате PostgreSQL
TIMESTAMPTZ(ISO 8601 с часовым поясом). - Поля с отсутствующими данными имеют значение
null.
Коды ответов
| Код | Описание |
|---|---|
200 |
Успешный ответ |
204 |
OPTIONS (preflight) |
404 |
Маршрут или ресурс не найден |
500 |
Ошибка сервера |
Формат ошибки
{
"error": "Описание ошибки"
}
Документация по сущностям
| Сущность | Описание |
|---|---|
| Команды | Список команд |
| Спринты | Сводные метрики по спринтам |
| Задачи | Задачи спринта и команды (с пагинацией) |
| Конфигурация | Публичные настройки для фронтенда |
Сводка эндпоинтов
| Метод | Путь | Сущность | Описание |
|---|---|---|---|
GET |
/api/teams |
Team | Список команд |
GET |
/api/teams/{teamId}/sprints |
Sprint | Спринты команды со сводкой |
GET |
/api/teams/{teamId}/tasks |
PaginatedTeamTasks | Все задачи команды (пагинация) |
GET |
/api/sprints/{sprintId} |
Sprint | Один спринт со сводкой |
GET |
/api/sprints/{sprintId}/tasks |
SprintTask | Задачи спринта |
GET |
/api/config |
AppConfig | Публичная конфигурация |
Связи между сущностями
Team ──< Sprint ──< SprintTask
│ ↑
└──── TeamTask ──────┘ (через sprint_id, sprint_name)
AppConfig (jira_url для ссылок на задачи)
- Team → Sprint:
GET /api/teams/{teamId}/sprints - Team → TeamTask:
GET /api/teams/{teamId}/tasks - Sprint → SprintTask:
GET /api/sprints/{sprintId}/tasks - AppConfig используется вместе с SprintTask и TeamTask для ссылок
{jira_url}/browse/{task_key}
Быстрые примеры
curl http://localhost/api/teams
curl http://localhost/api/config
curl http://localhost/api/teams/1/sprints
curl http://localhost/api/teams/1/tasks
curl http://localhost/api/teams/1/tasks?page=2&per_page=50
curl http://localhost/api/sprints/42
curl http://localhost/api/sprints/42/tasks
Подробности — в документации соответствующей сущности.
Реализация
| Компонент | Путь |
|---|---|
| Точка входа | public/index.php |
| Бизнес-логика | src/Features/Reports/ReportsApi.php |
Перцентили в сводке по спринтам вычисляются в PostgreSQL функцией percentile_cont. Подробнее — в документации по спринтам.