[Feature] API Rate Limiting 미들웨어 및 Swagger UI 구현 #30

Closed
opened 2026-02-09 07:47:37 +00:00 by seonkyu.kim · 0 comments
Owner

설명

API 키 기반 요청 속도 제한 미들웨어를 구현하고, Swagger UI를 추가하여 브라우저에서 API 테스트가 가능하도록 한다.

📌 참조: Documents/ProgramSetup.md §7 (파이프라인 순서 9번), §10 (Swagger 설정)

체크리스트 — Rate Limiting

  • ASP.NET Core 내장 Rate Limiting 미들웨어 구현
  • 고정 윈도우 정책 (IP 기반 분당 100회 제한)
  • 한도 초과 시 HTTP 429 + 에러코드 106 반환
  • UseMiddlewarePipeline에 등록 (파이프라인 순서 9번)

체크리스트 — Swagger UI

  • Swashbuckle.AspNetCore 6.9.0 + Annotations 6.9.0 패키지 추가
  • AddOpenApi() + MapOpenApi() → Swashbuckle 교체
  • SPMS.API/Extensions/SwaggerExtensions.cs — AddSwaggerDocumentation()
    • 도메인별 API 문서 분리 (전체, 공개, 인증, 계정, 서비스 등)
    • JWT Bearer 인증 UI
    • SPMS 커스텀 헤더 자동 표시 필터
  • SPMS.API/Filters/SpmsHeaderOperationFilter.cs — 커스텀 헤더 필터
  • UseMiddlewarePipeline에 Swagger 등록 (Development 환경만)
  • PublicController에 GroupName 적용
  • Microsoft.AspNetCore.OpenApi 제거 (Swashbuckle과 충돌)
  • 빌드 성공 확인
## 설명 API 키 기반 요청 속도 제한 미들웨어를 구현하고, Swagger UI를 추가하여 브라우저에서 API 테스트가 가능하도록 한다. > **📌 참조**: `Documents/ProgramSetup.md` §7 (파이프라인 순서 9번), §10 (Swagger 설정) ## 체크리스트 — Rate Limiting - [x] ASP.NET Core 내장 Rate Limiting 미들웨어 구현 - [x] 고정 윈도우 정책 (IP 기반 분당 100회 제한) - [x] 한도 초과 시 HTTP 429 + 에러코드 106 반환 - [x] UseMiddlewarePipeline에 등록 (파이프라인 순서 9번) ## 체크리스트 — Swagger UI - [x] Swashbuckle.AspNetCore 6.9.0 + Annotations 6.9.0 패키지 추가 - [x] `AddOpenApi()` + `MapOpenApi()` → Swashbuckle 교체 - [x] `SPMS.API/Extensions/SwaggerExtensions.cs` — AddSwaggerDocumentation() - 도메인별 API 문서 분리 (전체, 공개, 인증, 계정, 서비스 등) - JWT Bearer 인증 UI - SPMS 커스텀 헤더 자동 표시 필터 - [x] `SPMS.API/Filters/SpmsHeaderOperationFilter.cs` — 커스텀 헤더 필터 - [x] UseMiddlewarePipeline에 Swagger 등록 (Development 환경만) - [x] PublicController에 GroupName 적용 - [x] Microsoft.AspNetCore.OpenApi 제거 (Swashbuckle과 충돌) - [x] 빌드 성공 확인
seonkyu.kim added the
Priority
Medium
Status
Available
Type
Feature
labels 2026-02-09 07:47:45 +00:00
seonkyu.kim self-assigned this 2026-02-09 07:47:45 +00:00
seonkyu.kim added this to the Phase 1: 인프라 & 공통 모듈 milestone 2026-02-09 07:47:46 +00:00
seonkyu.kim added
Status
Done
and removed
Status
Available
labels 2026-02-09 08:14:00 +00:00
Sign in to join this conversation.
No description provided.