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 | 서버 오류 |