API 시스템을 구현하기 위한 아키텍처 중에 가장 널리 사용되는 형식
리소스(URI)를 어떻게 한다(HTTP Method)를 구조적으로 깔끔하게 표현
아키텍처: 설계도, 구조
URI(Uniform Resource Identifier)
해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소
HTTP Method
HTTP request가 의도하는 action을 정의한 것
Payload
HTTP request에서 server로 보내는 데이터 (request.body)
URL과 URI의 차이점
URI가 더 큰 개념
URL은 특정 자원을 가지고 무엇을 할지까지 나타내준다.
RESTful API의 장점
RESTful API는 그 자체만으로도 API의 목적이 쉽게 이해가 된다.
ex) GET/user/1 --> GET/users/1
단수,복수는 속한 곳의 규칙을 따라야 한다.
개인적으로 리스트에서 데이터를 가져올 때는 복수로, 특정 개별 데이터에 해당하는 값은 단수
ex)
1번 유저를 삭제해줘 --> DELETE /users/1
1번 유저를 가져와줘 --> GET /users/show/1 (x) // GET users/1
resource 사이에 연관 관계가 있는 경우
ex)
category/1/sub_category/2
user/name (x) --> user-name
ex)
GET user/1/profile-photo.jpg (x)
GET user/1/profile-photo
ex)
POST http://10.58.4.1:8000/products
PATCH http://10.58.4.1:8000/products/1
DELETE http://10.58.4.1:8000/products/1
?로 변수를 전달
GET /products?price=3000원
일종의 필터링
?offset=0&limit=100
데이터가 5000개일 때 한 페이지에 모두 담을 수 없기 때문에
100개씩 끊어서 보내주는 것
Path parameter vs Query parameter
GET /products/3 vs GET /prodcts?id=3
Query parameter -> Filtering, Sorting, Searching
만약에 3번 products가 없는데 path parameter로 요청하면..
404(Not Found) 발생!
query parameter로 요청한다면...
[] 빈리스트를 반환하고 오류가 발생하지 않는다.