REST는 HTTP를 잘 활용하기 위한 원칙.
REST API는 이 원칙을 잘 준수하여 만든 API.
URI로 자원을 표현 & 자원에 대한 행위는 HTTP Method로 표현.
GET /deleteUserInfo/id?=3 vs DELETE /users/3
1. 동사보다 명사 사용, 대문자보다 소문자 사용
GET http://seok0301.com/Running
->
http://seok0301.com/run
2. URI에 HTTP Method가 들어가면 안 됨
GET /books/delete/1
->
DELETE /books/1
3. URI에 행위를 포함하면 안 됨
DELETE http://seok0301.com/delete-post/1
->
DELETE http://seok0301.com/run
4. 경로 부분 중 변하는 부분은 유일한 값으로 대체
id는 하나의 특정 resource를 나타내는 고유값을 의미
student를 생성하는 URI가 POST /students 라면,
id = 10 인 student를 삭제하는 URI는 DELETE /students/10
5. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현.
6. 마지막에 슬래시 (/)를 포함하지 않음
POST http://seok0301.com/test
->
POST http://seok0301.com/test
7. 언더바(_) 대신 하이폰(-)을 사용
GET http://seok0301.com/test_blog
->
GET http://seok0301.com/test-blog
8. 파일 확장자는 URI에 포함하지 않고, 대신 Accept header를 사용
GET http://seok0301.com/photo.jpg
->
GET http://seok0301.com/photo
9. 리소스 간에 연관 관계가 있는 경우 표현 형식.
/리소스명/리소스 ID/관계가 있는 다른 리소스명
GET /books/{bookid}/viewers (일반적으로 소유 ‘has’의 관계를 표현할 때)
10. 자원 표현 방식
GET http://seok0301.com/sports
sports라는 컬렉션 요청
GET http://seok0301.com/sports/soccer
soccer라는 도큐먼트 요청
GET http://seok0301.com/sports/soccer/players
players라는 컬렉션 요청
GET http://seok0301.com/sports/soccer/players/13
13번 선수라는 도큐먼트 요청
GET: 자원을 받아오기만 할 때 사용.
POST: 새로운 자원을 추가할 때 사용.
PUT: 존재하는 자원을 변경할 때 사용.
PATCH: 한 자원의 데이터를 부분적으로 변경할 때 사용.
DELETE: 자원을 삭제할 때 사용.
https://velog.io/@ellyheetov/REST-API
https://jaejong.tistory.com/40
https://bentist.tistory.com/37
https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80