[Node.js] 2. Express.js, API, REST API
웹 프레임워크(Web Framework)
- 웹 서비스를 빠르게 구현할 수 있게 도와주는 도구
- 프로그래밍의 특정 부분을 추상화해서 개발자가 더 높은 수준에서
프로그램을 작성할 수 있게 도와주는 도구
- Framework : 틀
Express.js란 무엇인가
● Node.is로 서버를 빠르고 간편하게 만들 수 있게 도와주는 도구
= 즉, Web Framework
● 미들웨어(Middleware)를 지원 :
사용자의 요청과 응답 사이에 위치하여 특정 기능을 수행하는 함수.
ex) 인증(Authentication), 로깅(Logging), 에러 처리 핸들러(Exception Handler)
API(Application Programming Interface)
● 서로 다른 소프트웨어나 어플리케이션을 연결해주는 매개체
ex) 날씨 조회 = 날씨 정보를 제공하는 서버에게 정보를 요청할 때
앱과 날씨 서버간의 통신을 도와주는 것.
● 요청(Request), 반환(Response)
- API = 중계자
REST API
● REST(Representational State Transfer) :
월드 와이드 웹 과 같은 분산 하이퍼미디어 시스템을 위해 네트워크 상에서 자원을 쉽고 명확하게
식별하고 조작할 수 있게 도와주는 소프트웨어 아키텍쳐.
● REST API = HTTP 통해 웹 서비스 자원에 접근하는 방식을 "REST 아키텍쳐"
의 규칙을 따라 구현된 API
● 구성 요소
1) 자원(Resource) - URL
- 소프트웨어가 관리하는 모든 것
ex) 쇼핑 웹사이트 → 상품(Goods), 장바구니(Carts) 등
2) 행위 - HTTP method
- GET , POST 등
Create : 생성(POST) // 생성(Create) = 새로운 데이터 생성
Read : 조회(GET) // 조회(Read) = 데이터를 읽는 작업
Update : 수정(PUT),(PATCH) // 데이터를 변환
Delete : 삭제(DELETE) // 데이터를 삭제
= CRUD
3) 표현
- JSON, XML 형식으로 자원(Resource)를 표
- HTTP에서는 Context-Type
REST API 예시
router.get('/books', (req, res) => {
res.json({ success: true, data: getAllBooks() });
});
- /books 라는 URL을 통해 전체 책 목록을 불러와 응답해주는 API
- req = Require 요청, res = Response 응답
- 해석 : /books라는 URL을 통해 전체 책 목록을 요청(res)할 테니 응답이 필요
→ 데이터를 불러오는데 success:true 했다면
data(데이터 정보를)인 전체 데이터를 (= getAllBooks() ) 불러온다.