route blueprint

API 라우트는 네 구역으로 설계한다

URL 표면, 입력 관문, 서버 작업, 출력 계약을 나누면 라우트 파일이 커져도 책임이 흐려지지 않는다.

URL surface

/api/users/[id]

자원 이름과 동적 세그먼트로 라우트가 다루는 대상을 고정한다.

명사형 경로동적 id

Input gate

query, body, cookie, header를 서로 다른 입력으로 보고 먼저 검증한다.

querybodycookieheader

Server work

권한 확인 뒤 서비스 함수와 저장소 호출을 실행한다. 브라우저 코드는 이 안을 모른다.

authservicedatabaseexternal API

Output contract

상태 코드와 JSON 모양을 정해 클라이언트가 같은 방식으로 처리하게 한다.

2xx success4xx request5xx servererror code
경로동사가 아니라 자원을 말하는가
입력검증 실패가 핵심 로직 전에 멈추는가
작업비밀키와 DB 접근이 서버에만 있는가
출력실패 원인이 상태 코드로 구분되는가