/
afanasevn
/
RedisLab
Обзор
Документация
Войти
/
afanasevn
/
RedisLab
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/RedisLab.Api/Controllers/DashboardController.cs
35 строк
1 KB
IBS\NAfanasev
Solution commit
24 июн 2026, 16:45
24 июн 2026, 16:45
bab80b7
Код
Авторство
О чём код?
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using RedisLab.Application.Abstractions; using RedisLab.Application.Contracts.Dashboard; namespace RedisLab.Api.Controllers; /// <summary> /// KPI дашборда с cache-aside через Redis. /// </summary> [ApiController] [Route("api/dashboard")] [Authorize] public sealed class DashboardController( IDashboardService dashboardService, IWebHostEnvironment environment) : ControllerBase { /// <summary> /// Возвращает агрегированные KPI по задачам. /// В Development добавляет заголовок X-Cache: HIT|MISS для учебной проверки. /// </summary> [HttpGet("kpi")] [ProducesResponseType(typeof(DashboardKpiDto), StatusCodes.Status200OK)] public async Task<IActionResult> GetKpi(CancellationToken ct) { var result = await dashboardService.GetKpiAsync(ct); if (environment.IsDevelopment()) { Response.Headers["X-Cache"] = result.CacheHit ? "HIT" : "MISS"; } return Ok(result.Kpi); } }