애플리케이션끼리 연결해주는 매개체 혹은 약속이다.
예) 우리가 컴퓨터의 키보드를 누르면, 해당 키가 컴퓨터에 입력(전달)된다.
API를 작성한다는 것: 프론트엔드에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다는 의미이다.
우리가 작성하는 API에서 백엔드는 데이터를 받아서 데이터베이스에 저장하고, 저장되어있는 데이터를 읽어서 가공/수정 후 프론트엔드에 데이터를 제공해서 사용자가 원하는 목적을 이룰 수 있도록 해야한다.
REST(REpresentational State Transfer)는 www(world-wide web)와 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.
일반적인 HTTP를 통한 송/수신은 REST API를 통해서 사용을 한다.
REST 아키텍처는 사람이 쉽게 이해할 수 있도록 자원을 정의하고 자원을 중심으로 표현을 구성하는 원칙을 제시한다.
우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표시할 수 있다.
GET, POST 등으로 자원에 대한 행위를 표현할 수 있다.
GET - 조회, POST - 생성.
Create: 생성(POST)
Read: 조회(GET)
Update: 수정(PUT / PATCH)
Delete: 삭제(DELETE)
자원을 어떻게 표현할 지에 대한 설명이다. 보통 JSON, XML 등의 형식을 이용해서 표현한다.
HTTP에서는 Content-type으로 표현한다.
router.get("/books", (req, res) => {
res.json({success: true, data: getAllBooks() });
});
/books라는 URL(자원)을 통해 책들의 전체 목록을 불러와서(행위) 응답해주는 역할을 하는 API이다.