API(Application Programming Interface)
- 애플리케이션끼리 연결해주는 매개체이자 약속
- 웹 어플리케이션(프론트엔드)에서 원하는 기능을 수행하는 URL과 인터페이스를 제공
- 원하는 데이터를 받아 db에 저장하고, 저장되어 있는 데이터를 읽어서 웹 어플리케이션(프론트엔드)에 데이터를 제공
REST API(Representatinal State Trasfer API)
REST는 WWW(월드 와이드 웹)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식

- URL, Headers, Method 등 네트워크 표현 수단을 사람이 봐도 이해하기 쉬운 표현으로 정의
REST 아키텍처
라는 규칙을 따르는 API

REST API 구성
- 자원(Resource)_ URL
ex) 쇼핑몰 상품 - Goods, 장바구니 - Carts
- 행위_HTTP method
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT),(PATCH)
Delete : 삭제(DELETE)
- 표현
해당 자원을 어떻게 표현해야 하는지에 대한 설명
보통 JSON, XML 형식을 이용
HTTP 에서는 Content-Type
이라는 헤더를 통해 표현 방법 서술
Content-Type: application/javascript
REST API 예시
router.get('/books', (req, res) => {
res.json({ success: true, data: getAllBooks() });
});
/books
라는 URL을 통해 전체 책 목록을 불러와 응답해주는 역할을 하는 API
- CRUD 중 Read를 담당하는 HTTP 메소드로 표현하여 REST한 API라고 볼 수 있음