REST(REpresentational State Transfer)란 웹에 존재하는 모든 분산 하이퍼미디어 자원(resorce, ex. 이미지, 동영상, 데이터)에 고유한 URI를 부여하여 정보들을 주고 받음에 있어서 자원에 대한 주소를 지정하는 제약 조건, 규칙입니다.
API(Application Programming Interface)는 프로그램에서 사용할 수 있도록 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스. 쉽게 설명하자면 소프트웨어가 다른 소프트웨어로 부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단(Windows API, Web API 등)
URI(Uniform Resource Identifier) 네트워크 상에서 자원을 구조와 함께 나타내는 구분자(식별자)로 하위 개념으로 URL(Uniform Resource Locator, 웹 주소)가 있습니다.
"프론트엔드에서 백엔드 API를 호출할 url을 어떻게 만들것인가?"
요청이 어떤 동작이나 정보를 위한 것인지를 형식 자체로 추론 가능!
HTTP 규약을 기반으로 data C.R.U.D를 여러 메소드(Get, Delete, Post, Put, Patch)를 활용하여 수행합니다. post, put, patch를 사용할 때는 body 객체를 첨부 활용하여 추가(create)와 수정(update)에 있어서 구체적인 접근이 가능합니다.
fetch(url, {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
headers: {
'Content-Type': 'application/json',
'Authorization': 'token'
}
body: JSON.stringify(obj)
// body data type must match "Content-Type" header
})
[GET] url = http://127.0.0.1:8000/product/main_page_product
[GET] url = http://127.0.0.1:8000/store/find_store
[POST] url = http://127.0.0.1:8000/product/add_first_item_information?name='자켓' &category='의류'
[GET] url = http://127.0.0.1:8000/store?name='강남'
웹 페이지의 url 주소를 자세히 보면 종종 ?
가 포함되어 있는 것을 보셨을 것입니다. 이 물음표는 단순한 문자열이 아닙니다. 특정한 기능을 수행하고 있죠. 물음표 뒤에는 늘 key=value
형식의 문자열이 따라옵니다. 이를 Query parameter 라고 부릅니다.
데이터를 요청시
- 조건으로 거르거나(filtering)
- 특정 방식으로 정렬하거나(sorting)
- 검색(searching)하고자 하는 경우 활용
해당 리소스에 더 자세한 정보를 얻기 위해 접근할 때 사용