MacroIndicators.cs 1013 B

12345678910111213141516171819202122232425262728
  1. using Application.Abstractions.Messaging;
  2. using Web.Api.Common;
  3. namespace Web.Api.Endpoints.Market;
  4. /// <summary>거시경제지표 — 지표코드(codes CSV, 미지정 시 전체)별 최근 추이 + 최신값 (KOSIS 수집, 익명 열람). 대시보드용.</summary>
  5. internal sealed class MacroIndicators : IEndpoint
  6. {
  7. public void MapEndpoint(IEndpointRouteBuilder app)
  8. {
  9. app.MapGet("api/market/macro", async (
  10. ISender sender,
  11. string? codes = null,
  12. int limit = 0,
  13. CancellationToken ct = default
  14. ) => {
  15. var codeList = string.IsNullOrWhiteSpace(codes)
  16. ? []
  17. : codes.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
  18. var result = await sender.Send(new Application.Features.Api.Stocks.GetMacroIndicators.Query(codeList, limit), ct);
  19. return ApiResponse.Ok(result);
  20. })
  21. .WithTags("Market")
  22. .AllowAnonymous();
  23. }
  24. }