계약 우선

REST 구현은 자원, 행위, 응답 계약 우선 고정

URI와 HTTP 메서드를 정한 뒤 Express 라우트로 옮기고, 성공/실패 응답을 같은 형식으로 유지하면 클라이언트가 예측 가능한 API를 사용할 수 있습니다.

1

자원 이름 결정

/api/users, /api/users/:id처럼 URL은 데이터의 위치를 말하게 합니다.

2

행위를 메서드 분리

조회는 GET, 생성은 POST, 갱신은 PUT/PATCH, 삭제는 DELETE로 나눕니다.

3

핸들러에서 검증한다

params와 body를 확인하고, 없는 자원은 성공 응답으로 숨기지 않습니다.

4

응답 형식 고정

성공은 200/201/204, 실패는 400/404/500 계열과 JSON 메시지로 반환합니다.

라우트 계약

경로에는 동사가 아니라 자원을 둡니다. getUsers보다 GET /users가 REST에 가깝습니다.

/users /:id

응답 계약

클라이언트가 분기할 수 있도록 상태 코드와 JSON 구조를 일관되게 맞춥니다.

200 OK 201 Created

오류 계약

필수 값 누락은 400, 없는 자원은 404처럼 실패 원인을 HTTP 의미와 맞춥니다.

400 404
실전 기준

Express 코드를 작성하기 전 표처럼 엔드포인트 계약을 먼저 적어 두면, 라우트 구현과 테스트 케이스를 같은 기준으로 맞출 수 있습니다.