38 lines
1.1 KiB
Markdown
38 lines
1.1 KiB
Markdown
# http-api
|
|
|
|
## 목적 / 책임
|
|
|
|
HTTP routing, middleware, handler, server entrypoint를 담당한다.
|
|
|
|
## 포함 경로
|
|
|
|
- `internal/http/` — router, middleware, handler
|
|
- `cmd/server/` — 서버 실행 진입점
|
|
|
|
## 제외 경로
|
|
|
|
- `internal/workflow/` — 업무 유스케이스
|
|
- `internal/storage/` — DB 접근
|
|
- `internal/scheduler/` — job queue 실행
|
|
|
|
## 주요 구성 요소
|
|
|
|
- `NewRouter` — chi router 구성
|
|
- `Handler` — HTTP 요청을 workflow 호출로 변환
|
|
- `loggingMiddleware` — 요청 로그 처리
|
|
- `cmd/server/main.go` — 의존성 조립과 서버 실행
|
|
|
|
## 유지할 패턴
|
|
|
|
- handler는 입력 파싱, 응답 변환, 에러 매핑에 집중한다.
|
|
- 업무 규칙은 workflow service에 위임한다.
|
|
|
|
## 다른 도메인과의 경계
|
|
|
|
- **workflow**: API endpoint는 workflow service를 통해 유스케이스를 실행한다.
|
|
- **persistence/scheduler**: HTTP 계층에서 DB나 River client를 직접 조작하지 않는다.
|
|
|
|
## 금지 사항
|
|
|
|
- HTTP handler에 상태 전이 규칙을 중복 구현하지 않는다.
|
|
- router에 외부 adapter 호출 로직을 직접 넣지 않는다.
|