For the complete documentation index, see llms.txt. This page is also available as Markdown.

컨트롤러

컨트롤러는 애플리케이션에서 HTTP 및 WebSocket 요청을 처리하는 책임이 있습니다. 컨트롤러는 외부 요청의 진입점 역할을 하며 전송 계층과 비즈니스 로직 사이의 다리 역할을 합니다.

목적

컨트롤러는 다음 특정 작업만 수행해야 합니다:

  1. 전송 계층 입력 검증 - 인증, 인가 및 입력 형식 검증

  2. 로직 컴포넌트 호출 - 비즈니스 로직을 적절한 로직 컴포넌트에 위임

  3. 입력 변환 - 요청 데이터를 로직 컴포넌트 호출용 매개변수로 변환

  4. 오류 처리 - 로직 컴포넌트의 오류를 포착하고 적절히 응답

위치

모든 컨트롤러는 다음 아래에 배치되어야 합니다 /src/controllers 디렉터리에 위치해야 하며 수행하는 작업을 기준으로 이름이 지정되어야 합니다.

src/
└── controllers/
    ├── users/
    │   ├── get-user.ts
    │   ├── create-user.ts
    │   └── update-user.ts
    ├── content/
    │   ├── publish-content.ts
    │   └── delete-content.ts
    └── health.ts

컨트롤러 구조

기본 HTTP 핸들러

POST 요청 핸들러

쿼리 매개변수 핸들러

입력 요구 사항

컨트롤러를 통해 수신되는 모든 입력 키(JSON 본문, 쿼리 매개변수, URL 매개변수, 헤더 등)는 소문자여야 합니다 이는 데이터 처리 시 대소문자 문제를 방지하기 위함입니다.

여러 단어로 된 매개변수

여러 단어로 된 매개변수는 다음을 사용해 정의해야 합니다: snake_case.

예시

오류 처리

표준 오류 응답

컨트롤러는 일관된 오류 응답 형식을 반환해야 합니다:

오류 매핑

도메인 오류를 적절한 HTTP 상태 코드에 매핑합니다:

인증 및 인가

인증 확인

인가 확인

모범 사례

1. 컨트롤러를 얇게 유지하기

컨트롤러는 로직 컴포넌트를 감싸는 얇은 래퍼여야 합니다:

2. 조기에 검증하기

검증하고 빠르게 실패시키세요:

3. 타입 안정성 사용하기

타입 안정성을 위해 TypeScript를 활용하세요:

4. 적절하게 로깅하기

중요한 이벤트와 오류를 로깅하세요:

컨트롤러 테스트

다음을 참조하세요 서비스 테스트(WKC) 통합 테스트 안내 문서.

마지막 업데이트