reports/docs/api/README.md

4.2 KiB
Raw Permalink Blame History

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 для ссылок на задачи)

Быстрые примеры

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. Подробнее — в документации по спринтам.