feat: Sandbox 모드 미들웨어 구현 (#34)

- SandboxMiddleware 추가: X-SPMS-TEST 헤더로 테스트 모드 감지
- HttpContext.Items["IsSandbox"] 플래그 설정
- 미들웨어 파이프라인 14번 위치에 등록

Closes #34
This commit is contained in:
SEAN 2026-02-09 17:32:04 +09:00
parent c49807c985
commit 9185afd5e9
2 changed files with 18 additions and 2 deletions

View File

@ -62,8 +62,8 @@ public static class ApplicationBuilderExtensions
// -- 13. X-API-KEY 검증 (SDK/디바이스 엔드포인트용) -- // -- 13. X-API-KEY 검증 (SDK/디바이스 엔드포인트용) --
app.UseMiddleware<ApiKeyMiddleware>(); app.UseMiddleware<ApiKeyMiddleware>();
// -- 14. X-SPMS-TEST 샌드박스 모드 (미구현 — Issue #14) -- // -- 14. X-SPMS-TEST 샌드박스 모드 --
// app.UseMiddleware<SandboxMiddleware>(); app.UseMiddleware<SandboxMiddleware>();
// -- 15. Swagger UI (개발 환경만) -- // -- 15. Swagger UI (개발 환경만) --
if (app.Environment.IsDevelopment()) if (app.Environment.IsDevelopment())

View File

@ -0,0 +1,16 @@
namespace SPMS.API.Middlewares;
public class SandboxMiddleware
{
private readonly RequestDelegate _next;
public SandboxMiddleware(RequestDelegate next) => _next = next;
public async Task InvokeAsync(HttpContext context)
{
var isTest = context.Request.Headers["X-SPMS-TEST"].FirstOrDefault();
context.Items["IsSandbox"] = string.Equals(isTest, "true", StringComparison.OrdinalIgnoreCase);
await _next(context);
}
}