Skip to the content.

REST API Layer — HTTP Adapter & RESTful Design

이 문서는 adapter-in/rest-api 레이어의 요약 가이드입니다.

핵심 원칙, 패키징 구조, 그리고 각 영역별 상세 가이드 링크를 제공합니다.


1) 핵심 원칙 (한눈에)

금지사항


2) 패키징 구조 (Bounded Context 예)

adapter-in/rest-api/
├─ config/
│  └─ properties/
│     └─ ApiEndpointProperties.java
│
├─ common/
│  ├─ dto/
│  │  ├─ ApiResponse.java          # 성공 응답 Wrapper
│  │  ├─ ErrorInfo.java             # 에러 응답 상세
│  │  ├─ SliceApiResponse.java      # Slice 페이징 응답
│  │  └─ PageApiResponse.java       # Page 페이징 응답
│  ├─ controller/
│  │  └─ GlobalExceptionHandler.java
│  ├─ error/
│  │  └─ ErrorMapperRegistry.java   # ErrorMapper 레지스트리
│  ├─ mapper/
│  │  └─ ErrorMapper.java           # ErrorMapper 인터페이스
│  └─ filter/
│     └─ LoggingFilter.java
│
└─ [boundedContext]/                # 예: order
   ├─ controller/
   │  ├─ OrderCommandController.java  # POST, PUT, PATCH, DELETE
   │  └─ OrderQueryController.java    # GET
   │
   ├─ dto/
   │  ├─ command/                    # Command 요청 DTO (상태 변경)
   │  │   ├─ CreateOrderApiRequest.java
   │  │   ├─ UpdateOrderStatusApiRequest.java
   │  │   └─ CancelOrderApiRequest.java
   │  ├─ query/                      # Query 요청 DTO (조회 조건)
   │  │   ├─ OrderSearchApiRequest.java
   │  │   └─ OrderDetailApiRequest.java
   │  └─ response/                   # 응답 DTO
   │      ├─ OrderApiResponse.java
   │      └─ OrderSummaryApiResponse.java
   │
   ├─ mapper/
   │  └─ OrderApiMapper.java         # ← @Component (DI)
   │
   └─ error/
      └─ OrderApiErrorMapper.java    # ← @Component

패키지 네이밍 규칙:

패키지 배치 원칙:


3) 영역별 상세 가이드 링크

🎯 Controller 설계

📦 DTO 패턴

🔄 Mapper 패턴

🚨 예외 처리

📖 OpenAPI/Swagger

⚙️ Configuration

🧪 Testing

📚 전체 가이드

🌐 i18n