| 1234567891011121314151617181920212223242526272829 |
- using Application.Abstractions.Messaging;
- using Web.Api.Common;
- using Web.Api.Extensions;
- namespace Web.Api.Endpoints.Stocks;
- /// <summary>경량 배치 시세 — codes=CSV(최대 50개), 코드/종가/등락률만 (관심종목 스트립용, 익명 열람)</summary>
- internal sealed class Quotes : IEndpoint
- {
- public void MapEndpoint(IEndpointRouteBuilder app)
- {
- app.MapGet("api/stocks/quotes", async (
- ISender sender,
- string? codes = null,
- CancellationToken ct = default
- ) => {
- var codeList = (codes ?? string.Empty).Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
- var result = await sender.Send(new Application.Features.Api.Stocks.GetQuotes.Query(codeList), ct);
- return result.Match(
- () => ApiResponse.Ok(result.Value),
- CustomResults.Problem
- );
- })
- .WithTags("Stocks")
- .AllowAnonymous();
- }
- }
|