API(Application Programming Interface)는 서로 다른 소프트웨어나 어플리케이션 간을 연결해주는 매개체이자 약속이라고 볼 수 있다.
REST(Representational State Transfer)는 월드 와이드 웹(WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다.
여기서 '네트워크 아키텍처 원리'란 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 일컫는다. 간단한 의미로는, 웹 상의 자료를 HTTP 위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다.
Http method로 해당 자원에 대한 행위를 표현할 수 있습니다. 예를 들어, GET메서드는 ‘조회(Read)’와 관련이 있으므로 데이터를 읽는 작업을 수행하며, POST메서드는 ‘생성(Create)’와 관련이 있으므로 새로운 데이터를 생성하는 작업을 수행합니다.
//행위 : method
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() });
});