build(infra): KIS API 클라이언트 시그니처 일원화 및 빌드 수정

- 수정: KisApiClient 메서드 반환 타입 Task<string> → Task<Dictionary<string, object>>로 통일
- 수정: GetOrRefreshTokenAsync ReadAsAsync → ReadFromJsonAsync로 변경
- 수정: PlaceholderKisApiClient IKisApiClient 인터페이스 완전 구현
- 수정: CollectionEndpoints 모든 WithOpenApi() 호출 제거
- 수정: Program.cs using 지시문 순서 재정렬
- 추가: Client/_Imports.razor Fluent UI 컴포넌트 네임스페이스 정의

이제 빌드 성공: QuantEngine.Web 프로젝트 컴파일 완료 (경고 0, 에러 0)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-06-29 23:19:35 +09:00
parent c56c9cc903
commit e7e7d1470d
6 changed files with 90 additions and 38 deletions
@@ -8,44 +8,37 @@ public static class CollectionEndpoints
public static void MapCollectionEndpoints(this WebApplication app)
{
var group = app.MapGroup("/api/collection")
.WithName("Collection")
.WithOpenApi();
.WithName("Collection");
group.MapGet("/state", GetCollectionState)
.WithName("GetCollectionState")
.WithOpenApi()
.Produces(200)
.Produces(500);
group.MapGet("/runs", GetRecentRuns)
.WithName("GetRecentRuns")
.WithOpenApi()
.Produces(200)
.Produces(500);
group.MapGet("/runs/{runId}/snapshots", GetRunSnapshots)
.WithName("GetRunSnapshots")
.WithOpenApi()
.Produces(200)
.Produces(404)
.Produces(500);
group.MapGet("/runs/{runId}/errors", GetRunErrors)
.WithName("GetRunErrors")
.WithOpenApi()
.Produces(200)
.Produces(404)
.Produces(500);
group.MapGet("/latest/{ticker}", GetLatestSnapshotsForTicker)
.WithName("GetLatestSnapshotsForTicker")
.WithOpenApi()
.Produces(200)
.Produces(500);
group.MapPost("/run", StartCollectionRun)
.WithName("StartCollectionRun")
.WithOpenApi()
.Produces(202)
.Produces(500);
}
@@ -57,7 +50,7 @@ public static class CollectionEndpoints
var state = await repo.GetDashboardStateAsync();
return Results.Ok(state);
}
catch (Exception ex)
catch
{
return Results.StatusCode(500);
}
@@ -70,7 +63,7 @@ public static class CollectionEndpoints
var runs = await repo.GetRecentRunsAsync(limit);
return Results.Ok(new { runs, count = runs.Count });
}
catch (Exception ex)
catch
{
return Results.StatusCode(500);
}
@@ -83,7 +76,7 @@ public static class CollectionEndpoints
var snapshots = await repo.GetRunSnapshotsAsync(runId);
return Results.Ok(new { runId, snapshots, count = snapshots.Count });
}
catch (Exception ex)
catch
{
return Results.StatusCode(500);
}
@@ -96,7 +89,7 @@ public static class CollectionEndpoints
var errors = await repo.GetRunErrorsAsync(runId, limit);
return Results.Ok(new { runId, errors, count = errors.Count });
}
catch (Exception ex)
catch
{
return Results.StatusCode(500);
}
@@ -109,7 +102,7 @@ public static class CollectionEndpoints
var snapshots = await repo.GetLatestSnapshotsForTickerAsync(ticker, limit);
return Results.Ok(new { ticker, snapshots, count = snapshots.Count });
}
catch (Exception ex)
catch
{
return Results.StatusCode(500);
}
@@ -170,7 +163,7 @@ public static class CollectionEndpoints
startedAt = now
});
}
catch (Exception ex)
catch
{
return Results.StatusCode(500);
}