Module
controller와 service를 앱에 연결한다.
REST 구현은 데코레이터 나열이 아니라 URL, DTO, 상태 코드, 비즈니스 책임을 같은 리소스 계약으로 묶는 일이다.
controller와 service를 앱에 연결한다.
요청 body와 param의 모양을 검증한다.
HTTP 메서드와 URL을 받아 service를 호출한다.
조회, 생성, 수정, 삭제 규칙을 처리한다.
| 요청 | Controller 계약 | Service 판단 | 응답 |
|---|---|---|---|
| POST /users | @Body()를 CreateUserDto로 받는다. | 새 id를 만들고 저장 규칙을 적용한다. | 201 Created |
| PATCH /users/:id | @Param('id')와 부분 body를 받는다. | 대상 id 존재 여부와 수정 가능성을 판단한다. | 200 또는 404 |
| DELETE /users/:id | 성공 시 본문 없는 응답을 선언한다. | 삭제 여부를 boolean으로 반환한다. | 204 No Content |
원칙: Controller에는 HTTP 계약, Service에는 비즈니스 규칙을 둔다.