Учебный REST API сервис управления проектами и задачами по курсу «Инструменты DevOps» (.NET 10, ASP.NET Core, PostgreSQL 18, Docker, Docker Compose, Prometheus).
| Метод и маршрут | Назначение |
|---|---|
GET / |
Информация о сервисе, версии (APP_VERSION) и имени хоста/контейнера |
GET /api/projects |
Список всех проектов |
GET /api/projects/{id} |
Получение проекта по идентификатору |
POST /api/projects |
Создание нового проекта (400 при пустом имени, 409 при дубликате) |
PUT /api/projects/{id} |
Переименование проекта (200 OK, 400 Bad Request, 404 Not Found, 409 Conflict) |
DELETE /api/projects/{id} |
Удаление проекта вместе с его задачами |
GET /api/projects/{id}/stats |
Статистика по задачам проекта (total, todo, inProgress, done, overdue) |
GET /api/tasks |
Список задач с фильтрацией по ?projectId= и &status= |
GET /api/tasks/{id} |
Получение задачи по идентификатору |
POST /api/tasks |
Создание новой задачи в проекте (начальный статус Todo) |
PUT /api/tasks/{id} |
Обновление названия, описания и срока задачи |
PATCH /api/tasks/{id}/status |
Смена статуса задачи (Todo -> InProgress -> Done и на шаг назад) |
DELETE /api/tasks/{id} |
Удаление задачи |
GET /health/live |
Liveness-проверка жизнеспособности процесса |
GET /health/ready |
Readiness-проверка готовности сервиса и доступности БД PostgreSQL |
GET /metrics |
Метрики в формате Prometheus |
-
Создайте локальный файл переменных окружения
.envиз шаблона:Copy-Item .env.example .env -
Соберите и запустите контейнеры сервиса и базы данных PostgreSQL:
docker compose up -d --build --wait
-
Проверьте готовность сервиса:
curl.exe http://localhost:8080/health/ready irm http://localhost:8080/api/projects
-
Остановка контейнеров:
# Остановка с сохранением данных БД в томе pgdata docker compose down # Остановка с полной очисткой томов данных (при пересоздании с нуля) docker compose down -v
- Поднимите контейнер базы данных PostgreSQL в фоне:
docker compose up -d --wait db
- Откройте решение
DemoApi.slnxв Visual Studio 2026 и нажмите F5 (или выполнитеdotnet run --project src/DemoApi). - Документация Swagger UI будет доступна по адресу
http://localhost:5080/swagger.
Тесты (xUnit + WebApplicationFactory) проверяют бизнес-правила и HTTP API поверх PostgreSQL:
# 1. Убедитесь, что контейнер БД запущен
docker compose up -d --wait db
# 2. Запустите все модульные и интеграционные тесты
dotnet test