Uniform Interface
Stateless (무상태성)
Cacheable (캐시 가능)
Self-descriptiveness (자체 표현 구조)
Client-Server 구조
계층형 구조
예시:
잘못된 URI
GET /members/delete/1
올바른 URI
DELETE /members/1
슬래시(/
)는 계층 관계 표현
/animals/mammals/whales
마지막에 슬래시 /
붙이지 않음
하이픈(-
)은 가독성 ↑, 밑줄(_
)은 사용하지 않음
소문자 사용 (대소문자 구분됨)
확장자(.jpg, .json 등) 넣지 않음 → Accept
헤더 활용
리소스 간 관계 표현
/users/{userId}/devices
/users/{userId}/likes/devices
예시:
/sports
→ 컬렉션/sports/soccer
→ 도큐먼트/sports/soccer/players/13
→ 컬렉션 + 도큐먼트 조합상태 코드 | 의미 |
---|---|
200 OK | 요청 정상 처리 |
201 Created | 리소스 생성 성공 (POST) |
400 Bad Request | 잘못된 요청 |
401 Unauthorized | 인증 실패 |
403 Forbidden | 접근 금지 (리소스 존재하지만 거부) |
404 Not Found | 리소스 없음 |
405 Method Not Allowed | 허용되지 않은 메서드 |
301 Moved Permanently | 리소스 URI 변경 (Location 헤더 포함) |
500 Internal Server Error | 서버 오류 |