diff --git a/SPMS.API/Extensions/ApplicationBuilderExtensions.cs b/SPMS.API/Extensions/ApplicationBuilderExtensions.cs index 0d5f0ae..409b319 100644 --- a/SPMS.API/Extensions/ApplicationBuilderExtensions.cs +++ b/SPMS.API/Extensions/ApplicationBuilderExtensions.cs @@ -62,8 +62,8 @@ public static class ApplicationBuilderExtensions // -- 13. X-API-KEY 검증 (SDK/디바이스 엔드포인트용) -- app.UseMiddleware(); - // -- 14. X-SPMS-TEST 샌드박스 모드 (미구현 — Issue #14) -- - // app.UseMiddleware(); + // -- 14. X-SPMS-TEST 샌드박스 모드 -- + app.UseMiddleware(); // -- 15. Swagger UI (개발 환경만) -- if (app.Environment.IsDevelopment()) diff --git a/SPMS.API/Middlewares/SandboxMiddleware.cs b/SPMS.API/Middlewares/SandboxMiddleware.cs new file mode 100644 index 0000000..29fca01 --- /dev/null +++ b/SPMS.API/Middlewares/SandboxMiddleware.cs @@ -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); + } +}