> REST API란?
웹에서 사용되는 여러 리소스들을 URI로 표현하고
그 리소스에 대한 행위를 HTTP Method(GET, POST ...)로 정의하는 방식을 말합니다.
그리고 Payload를 통해 구조적으로 표현합니다.
URI형식(어떤 정보를) X 요청 방식(어떻게 할 것인가)
> 기본 배경 지식
restful API를 보낼때 URI / HTTP Method / payload를 이용
URI(명사)
해당 사이트의 특정 리소스 위치를 나타내는 "유일한" 주소
- http://www.naver.com/news
=> news라는 특정한 리소스의 위치를 나타내는 유일한 주소
HTTP Method( get, post, put, delete, patch )(동사)
HTTP request가 의도하는 action을 정의한 것
Payload
HTTP request에서 server로 보내는 데이터
(body에 담아보내는 데이터)
> REST API의 장점
> 설계 예시
Path parameter (바로 앞에 있는 리소스의 구체적인 id)
HTTP GET http://10.58.4.1:8000/products/1/review
HTTP POST http://10.58.4.1:8000/products
HTTP PATCH http://10.58.4.1:8000/products/1
HTTP DELETE http://10.58.4.1:8000/products/1
Query parameter(검색하는 조건)
HTTP GET http://10.58.4.1:8000/products?price=3000원
HTTP GET http://10.58.4.1:8000/products?price=3000원&name=사과
HTTP GET http://10.58.4.1:8000/products?ordering=-id
HTTP GET http://10.58.4.1:8000/products?ordering=-price
HTTP GET http://10.58.4.1:8000/products?offset=0&limit=100
HTTP GET http://10.58.4.1:8000/users?search=홍길동
> Path parameter vs Query parameter
언제 어떤 방법을 사용해야 할까?
GET /products/3
vs GET /products?id=3
Path parameter는 두개의 API (GET /products와 GET /products/3)
Query parameter는 단일 API (전체 리스트중에 id=3만 골라낸 것)
Best Practice
Query parameters -> Filtering, Sorting, Searching