# 회원을 삭제할때.
GET /members/delete/1 -> delete와 같은 행위에 대한 표현을 리소스에 적용하면 안된다.
DELETE /members/1 -> 행위에 대한 표현은 HTTP Method로 표현한다.
# 회원정보를 가져올때.
GET /members/1
# 회원을 추가
POST /members/2
# 회원정보 전체 교체
PUT /members/2
# 회원정보를 일부 교체
PATCH /members/2
http://api.example.com/houses/apartments
http://api.example.com/animals/mammals/whales
http://api.example.com/houses/apartments/ (X)
http://api.example.com/houses/apartments (0)
GET / members/1/345/photo HTTP/1.1 Host: api.example.com Accept: image/jpg
/리소스명/리소스 ID/관계가 있는 다른 리소스명
GET : /users/{userid}/music (일반적으로 소유 ‘has’의 관계를 표현할 때)
GET : /users/{userid}/favorit/music (관계명이 애매하거나 구체적 표현이 필요할 때)
http:// api.example.com/sports/soccer
http:// api.example.com/sports/soccer/players/13
RESTful API를 구현할때, 적절한 HTTP 상태 코드를 사용하는 것이 아주 중요하다.
- 2xx : 클라이언트 요청이 성공적으로 수행됨.
- 3xx : 클라이언트는 요청을 완료하기 위해 추가적인 행위를 해야한다.
- 4xx : 클라이언트의 잘못된 요청.
- 5xx : 서버 오류
200
OK : 클라이언트의 요청을 정상적으로 수행함.201
Created : 클라이언트가 리소스 생성을 요청 했을때, 리소스가 성공적으로 생성301
Moved Permanently : 클라이언트가 요청한 리소스에 대한 URI가 변경 되었을때 사용하는 응답코드.400
Bad Request : 클라이언트의 요청이 부적절 할 경우.401
Unauthorized : 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을때.403
Forbidden : 유저 인증상태와 관계 없이 응답하고 싶지 않은 리소스를 클라이언트가 요청했을때.404
Not Found : 클라이언트가 요청한 리소스가 존재 하지 않을때.405
Method Not Allowed : 클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용했을 경우.500
Internal Server Error : 서버에 문제가 있을때.Reference
https://blog.restcase.com/5-basic-rest-api-design-guidelines/
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
https://ko.wikipedia.org/wiki/REST