728x90
01. 준비하기
Express.js의 이해
-
- 웹서버란 무엇인가? Express는 무엇인가?
- 일반적인 웹 서버와 Node.js로 만들게 될 웹 서버 비교
- 일반적인 웹 서버와 Node.js로 만든 웹 서버는 다르지 않습니다!
- 그저 어떤 도구를 사용해서 만들었나의 차이일 뿐, 동일한 기능을 수행하는 웹 서버를 만들수 있으며, 이것은 다른 언어나 도구를 이용해 만든 웹 서버도 마찬가지 입니다.
- 기능이 다른 웹 서버는 존재할 수 있지만 기반이 되는 개념 자체가 다른 웹 서버는 존재하지 않습니다! 우리가 배운게 전부라고 볼 수 있어요!
- Express.js란?
- Express.js는 Node.js로 서버를 빠르고 간편하게 만들 수 있게 도와주는 웹 프레임워크 입니다.
- Express.js 이외에 다양한 웹 프레임워크가 존재하지만 오늘날 가장 많은 Node.js 웹서버가 Express.js 프레임워크를 통해 개발되었습니다.
- 최근 각광받고 있는 Node.js의 웹 프레임워크로 Nest.js도 있습니다.
- 웹 서버와 Express.js의 차이점
- 다시 한번 복습! Express.js와 웹서버는 동일하지 않습니다!
- Express.js는 웹서버 자체가 아닌 Node.js를 위한 웹 프레임워크로 웹 서버를 구현하기 위해 사용 되는 것이 Express.js 프레임워크 입니다.
Express.js로 웹 서버 구현
터미널을열어 터미널에 아래와 같이 명령어를 실행하여 package.json을 생성해줍시다.
npm init -y
뒤의 -y는 npm init 명령 실행시 원래는 프로젝트명이나 버전등을 물어보는데 그런 것들을 물어보지 않고 기본값으로 알아서 설정해주는 옵션입니다. npm init -y를 마치면 아래와 같은 폴더 구조로 package.json파일이 생성되었는지 확인해봅시다.
-
- Express.js 설치
- 다시 터미널로 돌아가 이번에는 Express.js 프레임워크를 설치해줍니다.
- 설치가 완료되었다면 이제 웹서버를 작성할 준비가 완료되었습니다!
- npm i express
- 기본적인 웹 서버 코드 작성
- 👉 SPA_MALL 폴더 안에 app.js라는 파일을 아래와 같이 만들어봅시다. 폴더 구조는 아래와 같습니다.
- package.json 파일을 다시 열어봤을때 express 관련된 내용이 들어있으면 정상적으로 설치가 된 것입니다.
- package-lock.json은 어떤 패키지들이 어떤 버전으로 설치되었는지 기록해놓은 파일입니다. 나중에 이 파일이 있으면 다른 동료들과 협업할때 같은 환경으로 개발할 수 있게 도와줍니다.
- node_modules 폴더는 npm을 통해 설치된 패키지들에 대한 파일이 있는 폴더입니다. 앞으로 개발을 하면서 다양한 라이브러리를 사용하게 될텐데 이에 대한 모든 파일이 여기에 설치됩니다.
API Client 학습
-
- API Client란 뭘까?
- API Client란 개발단계에서 우리가 작성한 API의 요청을 확인하거나 테스팅 할 때 도움을 주는 툴입니다. API Client를 사용함으로 개발 속도를 높이거나 치명적인 에러를 예방하는데 도움을 받을 수 있습니다.
- Postman, Insomnia 등 여러 API Client가 있지만 이번에는 Thunder Client를 사용할 예정입니다.
- Thunder Client는 VS Code 안에서 사용할 수 있으면서, 기능이 부족하지 않기 때문에 비교적 쉽게 사용 할 수 있습니다!
- 어떤 상황에 필요할까?
- 지금까지 우리는 HTTP Method 중 GET Method에 대응하는 API만 만들고 브라우저로 확인했습니다!
- 아직까진 API Client가 필요 없어보였지만 POST, PATCH, PUT, DELETE, HEAD 등의 다양한 Method에 대한 API를 개발하고 테스트하기 위해서는 반드시 필요한 도구라고 볼 수 있습니다.
02. 시작하기
Routing 이해 및 Router 학습
-
- Routing이란?
- Router란?
- 여기서 말하는 Router는 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js 기본 기능중 하나입니다.
Module의 이해
-
- Module이란?
- 모듈(Module)이란 무엇일까요?여기서 Javascript 파일은 특정한 기능을 가진 여러 개의 함수와 변수들의 집합입니다.
- 모듈(Module)은 하나의 모듈에서 다른 모듈을 호출하여 사용할 수 있습니다.
- 모듈(Module)은 그 자체로도 하나의 프로그램이면서 다른 프로그램의 부품으로도 사용할 수 있습니다.
- 보통 1개의 파일이 1개의 모듈이 됩니다.
- 💡 모듈(Module)은 Javascript 파일 단위로 분리된 코드를 일컫습니다.
- 모듈은 왜 필요할까요?
- 코드 베이스를 분리할 수 있으며, 이를 통해 코드를 구조적으로 관리할 수 있습니다.
- 코드를 재사용 가능하게 만들어줍니다. 즉, 모듈화(modularize) 됩니다.
- 모듈의 인터페이스(Interface)만 노출 시킬 수 있습니다. 즉, 인터페이스 이외에는 모든 정보를 은닉하는 정보은닉(information hiding)을 구현 할 수 있게 됩니다.
- 종속성을 관리할 수 있게 됩니다.
- CommonJS(CJS)
- 브라우저 이외의 환경에서 모듈을 사용할 수 있도록 고안된 명세입니다. 설정을 따로 추가하지 않은 이상, Node.js에서는 CommonJS를 기본으로 사용하게 됩니다. CommonJS는 전역 스코프에 정의 되어있는 require 함수로 대표됩니다. require함수는 경로 혹은 문자열을 가지고 내부 알고리즘을 통해 모듈을 가져오고 종속성을 처리합니다.
- 더 알아보기 - ECMA Script Module(ESM)CommonJS와는 다르게 정적으로 모듈을 가져오며 비동기적 모듈 로딩과 순환 종속을 처리합니다.궁금하신 분들은 이해가 가지 않는 키워드들을 찾아보시기 바랍니다 😉
- 아직 무슨 말인지 완전히 이해되지 않아도 괜찮습니다.
- 모든 Javascript 환경에서 통합적인 인터페이스를 제공하기 위해 시작된 체계입니다.
- Module은 어떻게 사용할까요?
- export 명령어를 변수나 함수 앞에 붙이면 외부 모듈에서 해당 변수나 함수에 접근할 수 있습니다.
- import, require 명령어를 사용하면 외부 모듈의 기능을 가져올 수 있습니다.
- ❓ import, require는 어떻게 구분해서 사용할까요?
- 자바스크립트는 대표적으로 CommonJS, ES6(ES2015) 방식으로 모듈 시스템을 관리할 수 있습니다.
- require는 현재 학습하고 있는 CommonJS로 모듈 시스템을 관리할 때 사용합니다.
- import는 ES6(ES2015)로 모듈 시스템을 관리할 때 사용합니다.
- ❓ import, require는 어떻게 구분해서 사용할까요?
Request와 Response
- 1) Request, Response란 뭘까?
- Request란 클라이언트가 서버에게 전달하려는 정보나 메시지를 담는 객체를 의미합니다.
- Response란 서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체입니다.
- 서버 모듈
- Node.js의 서버 모듈에는 대표적으로 http 모듈과 Express 모듈이 존재합니다.
- Express 모듈은 http 모듈을 확장하여 제공합니다.
- Express 모듈은 기존 http 모듈의 메서드도 사용할 수 있지만, Express가 추가 제공하는 메서드나 속성들을 사용할 수 있습니다.
- 최근에는 Express의 메서드가 더욱 편리하기에 기존 http 모듈의 메서드는 잘 사용되고 있지 않습니다.
- → http 모듈이 궁금하시다면 여기를 클릭해주세요!
- Express 모듈의 req, res 객체
- 💡 볼드 내용들만 우선적으로 확인 하면 좋아요!
- req.app : req 객체를 통해 app 객체에 접근할 수 있습니다.
- req.ip: 요청한 Client의 ip 주소가 담겨 있습니다.
- req.body: Request를 호출할 때 body로 전달된 정보가 담긴 객체입니다.
- express.json() Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.
- req.params: 라우터 매개 변수에 대한 정보가 담긴 객체입니다.
- req.query: Request를 호출할 때 쿼리 스트링으로 전달된 정보가 담긴 객체입니다.
- req.cookies: Request를 호출할 때 Cookie 정보가 담긴 객체입니다.
- cookie-parser Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.
- req.get(Header): 헤더에 저장된 값을 가져오고 싶을 때 사용합니다.
- res.app : res 객체를 통해 app 객체에 접근할 수 있습니다.
- res.status(코드) : Response에 HTTP 상태 코드를 지정합니다.
- → Http 상태 코드에 대해 자세히 알고싶다면 여기를 클릭해주세요!
- res.send(데이터) : 데이터를 포함하여 Response를 전달합니다.
- res.json(JSON) : JSON 형식으로 Response를 전달합니다.
- res.end() : 데이터 없이 Response를 전달합니다.
- res.direct(주소) : 리다이렉트할 주소와 함께 Response를 전달합니다.
- res.cookie(Key, Value, Option) : 쿠키를 설정할 때 사용합니다.
- res.clearCookie(Key, Value, Option) : 쿠키를 제거할 때 사용합니다.
- ❓ Request body, params, query을 더 자세하게 알고싶어요!req.body (Body)
- 클라이언트가 요청(Request)을 보냈을 때, Body에 데이터를 삽입하였을 때 사용됩니다.
- Key-Value의 데이터 형식을 가지고 있으며, 대표적으로 JSON 형태를 띄고 있습니다.
- Body는 Query String, Path Variable(params)과 다르게, URL만을 가지고 어떤 데이터를 전달하였는지 확인할 수 없는 특징을 가지고 있습니다.
- 데이터를 생성하거나 수정이 필요한 데이터의 전달을 위해 사용됩니다. ex) 사용자의 ID, 사용자의 Password, 게시글 제목 등
- POST, PUT과 같은 Http Method에서 사용됩니다. → Http Method는 다음 자료에서 배우실꺼에요!
- 클라이언트가 요청(Request)을 보냈을 때, URL에 원하는 Key-Value를 삽입하여 데이터를 전달합니다.
- URL의 마지막에 ?기호를 이용해 Query String을 사용할 수 있습니다. ex) https://sparta.com**?name=이용우&age=29**
- 특정 콘텐츠의 위치를 표시하거나 웹 페이지에 특정한 옵션을 설정할 때 사용합니다. ex) 게시글의 정렬, 특정 날짜의 게시글만 출력하는 옵션 설정 등
- GET과 같은 Http Method에서 사용됩니다.
- 클라이언트가 요청(Request)을 보냈을 때, URL에 원하는 데이터를 삽입하여 전달합니다.
- URL 특정 경로를 매개 변수로써 사용합니다.
- 특정 게시글을 선택하거나 명확한 리소스를 지정해야할 때 사용합니다. ex) 게시글의 상세 정보 조회, 사용자의 상세 정보 조회
- 클라이언트에서 서버로 보내는 메시지를 요청(Reuqest), 서버에서 클라이언트에게 보내는 메시지를 **응답(Response)**이라고 부릅니다. body, params, query는 클라이언트가 서버에 요청(Request)을 보낼 때 데이터를 어떤 방식으로 전송하는지에 대한 여러가지 방법들을 나열한 것 입니다.
- req 객체
- 나머지 내용은 추가적으로 궁금할 때 별도로 학습하시면 좋아요! 😇
API와 REST API의 개념
-
- API(Application Programming Interface)란?
- API는 애플리케이션끼리 연결해주는 매개체이자 약속이라고 볼 수 있습니다.
- 그럼 현실에서는 어떤것을 API로 비유할 수 있을까?
- 키보드로 글자를 입력하면 키보드는 우리가 작성한 글자를 컴퓨터에 전달해주는 역할을 합니다. 우리가 키보드의 키를 누르는것이 API를 호출하는것으로 볼 수 있습니다.
- 어떤 연인은 서로 기분이 상할것 같으면 미리 “윙크”를 하기로 약속했습니다. 대화하다 갑자기 “윙크”를 본 상대방은 기분이 나쁜것을 알아채고 은근히 기분을 풀어주려 노력합니다. 이러한 약속 또한 API라고 볼 수 있습니다.
- 우리가 API를 작성한다는 의미는?
- 웹 어플리케이션(프론트엔드)에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다는 의미입니다.
- 우리가 작성 할 API에서 원하는 데이터를 받아 데이터베이스에 데이터를 저장하고, 저장되어 있는 데이터를 읽어서 웹 어플리케이션(프론트엔드)에 데이터를 제공하는 행위를 통해 사용자가 원하는 목적을 이룰 수 있게 해야 합니다.
- 그럼 REST API는 어떤 의미를 갖는 API인가?
- REST API, RESTful API 라고 들어보셨나요? 여기서 REST란 무슨 의미일까요?
- REST는 “Representational State Transfer”의 줄임 말로, 위키를 따르면 다음과 같습니다.
- REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.
- 최대한 간단하게 설명하자면 URL, Headers, Method 등 네트워크 표현 수단을 사람이 봐도 이해하기 쉬운 표현으로 정의한다고 이해하면 됩니다. 또한 이 “REST 아키텍쳐”는 사람이 봐도 쉽게 이해할 수 있도록 “자원”을 정의하고 이 “자원”을 중심으로 표현을 구성하는 원칙을 제시합니다.
- REST API는 “REST 아키텍쳐”라는 규칙을 따르는 API라고 생각하시면 됩니다.
- REST API의 구성은 크게 세 가지로 이루어 집니다 RESTful API
- 자원(Resource) - URL
- 우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있습니다. 쇼핑몰이라면 상품(Goods)에 대해서 정보를 관리할것이고 또는 장바구니(Carts)에 담긴 상품들도 관리해야겠죠.
- 행위 - HTTP method
- 이전에 배웠던 HTTP method 기억나시나요? GET, POST 등등이 있다고 했었는데요. 이것으로 해당 자원에 대한 행위를 표현할 수 있습니다. 예를 들어 GET 메소드는 해당 자원의 조회, POST 메소드는 해당 자원의 생성 이런 식으로요.
- 이렇게 나누어진 것을 보통 CRUD 라고 합니다. 자원에 대한 생성/조회/수정/삭제를 각각의 method 로 나누어놓은 것이지요.
- Create : 생성(POST) Read : 조회(GET) Update : 수정(PUT),(PATCH) Delete : 삭제(DELETE)
- 위 이미지의 예시처럼 쓰이는 것이 일반적인 method 사용방식입니다. 하지만 이것은 필수인 부분이 아니고 모든 곳에서 다 이렇게 지켜서 사용하지는 않습니다. 상황에 따라 저것을 완벽하게 지키기 어려운 부분들도 있으니 이 부분 참고 해주세요.
- 표현
- 해당 자원을 어떻게 표현할지에 대한 설명입니다. 보통 JSON, XML 같은 형식을 이용해서 자원을 표현합니다.
- HTTP에서는 Content-Type 이라는 헤더를 통해 표현 방법을 서술합니다.
- REST API 예시
-
router.get('/books', (req, res) => { res.json({ success: true, data: getAllBooks() }); });
- 위의 예시 코드는 /books 라는 URL을 통해 전체 책 목록을 불러와 응답해 주는 역할을 하는 API입니다.
- 위의 API는 REST API의 관점에서 보았을때 URL로 리소스를 구분할 수 있고 다른 표현이 없으므로 전체 리스트를 불러오는것을 짐작 할 수 있습니다. 또한 CRUD 중 Read를 담당하는 HTTP 메소드로 표현하여 REST한 API라고 볼 수 있습니다.
Request와 Response
- 1) Request, Response란 뭘까?
- Request란 클라이언트가 서버에게 전달하려는 정보나 메시지를 담는 객체를 의미합니다.
- Response란 서버에서 클라이언트로 응답 메시지를 전송시켜주는 객체입니다.
- 서버 모듈
- Node.js의 서버 모듈에는 대표적으로 http 모듈과 Express 모듈이 존재합니다.
- Express 모듈은 http 모듈을 확장하여 제공합니다.
- Express 모듈은 기존 http 모듈의 메서드도 사용할 수 있지만, Express가 추가 제공하는 메서드나 속성들을 사용할 수 있습니다.
- 최근에는 Express의 메서드가 더욱 편리하기에 기존 http 모듈의 메서드는 잘 사용되고 있지 않습니다.
- → http 모듈이 궁금하시다면 여기를 클릭해주세요!
- Express 모듈의 req, res 객체
- 💡 볼드 내용들만 우선적으로 확인 하면 좋아요!
- req.app : req 객체를 통해 app 객체에 접근할 수 있습니다.
- req.ip: 요청한 Client의 ip 주소가 담겨 있습니다.
- req.body: Request를 호출할 때 body로 전달된 정보가 담긴 객체입니다.
- express.json() Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.
- req.params: 라우터 매개 변수에 대한 정보가 담긴 객체입니다.
- req.query: Request를 호출할 때 쿼리 스트링으로 전달된 정보가 담긴 객체입니다.
- req.cookies: Request를 호출할 때 Cookie 정보가 담긴 객체입니다.
- cookie-parser Middleware를 이용하여야 해당 객체를 사용할 수 있습니다.
- req.get(Header): 헤더에 저장된 값을 가져오고 싶을 때 사용합니다.
- res.app : res 객체를 통해 app 객체에 접근할 수 있습니다.
- res.status(코드) : Response에 HTTP 상태 코드를 지정합니다.
- → Http 상태 코드에 대해 자세히 알고싶다면 여기를 클릭해주세요!
- res.send(데이터) : 데이터를 포함하여 Response를 전달합니다.
- res.json(JSON) : JSON 형식으로 Response를 전달합니다.
- res.end() : 데이터 없이 Response를 전달합니다.
- res.direct(주소) : 리다이렉트할 주소와 함께 Response를 전달합니다.
- res.cookie(Key, Value, Option) : 쿠키를 설정할 때 사용합니다.
- res.clearCookie(Key, Value, Option) : 쿠키를 제거할 때 사용합니다.
- ❓ Request body, params, query을 더 자세하게 알고싶어요!req.body (Body)
- 클라이언트가 요청(Request)을 보냈을 때, Body에 데이터를 삽입하였을 때 사용됩니다.
- Key-Value의 데이터 형식을 가지고 있으며, 대표적으로 JSON 형태를 띄고 있습니다.
- Body는 Query String, Path Variable(params)과 다르게, URL만을 가지고 어떤 데이터를 전달하였는지 확인할 수 없는 특징을 가지고 있습니다.
- 데이터를 생성하거나 수정이 필요한 데이터의 전달을 위해 사용됩니다. ex) 사용자의 ID, 사용자의 Password, 게시글 제목 등
- POST, PUT과 같은 Http Method에서 사용됩니다. → Http Method는 다음 자료에서 배우실꺼에요!
- 클라이언트가 요청(Request)을 보냈을 때, URL에 원하는 Key-Value를 삽입하여 데이터를 전달합니다.
- URL의 마지막에 ?기호를 이용해 Query String을 사용할 수 있습니다. ex) https://sparta.com?name=이용우&age=29
- 특정 콘텐츠의 위치를 표시하거나 웹 페이지에 특정한 옵션을 설정할 때 사용합니다. ex) 게시글의 정렬, 특정 날짜의 게시글만 출력하는 옵션 설정 등
- GET과 같은 Http Method에서 사용됩니다.
- 클라이언트가 요청(Request)을 보냈을 때, URL에 원하는 데이터를 삽입하여 전달합니다.
- URL 특정 경로를 매개 변수로써 사용합니다.
- 특정 게시글을 선택하거나 명확한 리소스를 지정해야할 때 사용합니다. ex) 게시글의 상세 정보 조회, 사용자의 상세 정보 조회
- 클라이언트에서 서버로 보내는 메시지를 요청(Reuqest), 서버에서 클라이언트에게 보내는 메시지를 **응답(Response)**이라고 부릅니다. body, params, query는 클라이언트가 서버에 요청(Request)을 보낼 때 데이터를 어떤 방식으로 전송하는지에 대한 여러가지 방법들을 나열한 것 입니다.
- req 객체
- 나머지 내용은 추가적으로 궁금할 때 별도로 학습하시면 좋아요! 😇
API와 REST API의 개념
-
- API(Application Programming Interface)란?
- API는 애플리케이션끼리 연결해주는 매개체이자 약속이라고 볼 수 있습니다.
- 그럼 현실에서는 어떤것을 API로 비유할 수 있을까?
- 키보드로 글자를 입력하면 키보드는 우리가 작성한 글자를 컴퓨터에 전달해주는 역할을 합니다. 우리가 키보드의 키를 누르는것이 API를 호출하는것으로 볼 수 있습니다.
- 어떤 연인은 서로 기분이 상할것 같으면 미리 “윙크”를 하기로 약속했습니다. 대화하다 갑자기 “윙크”를 본 상대방은 기분이 나쁜것을 알아채고 은근히 기분을 풀어주려 노력합니다. 이러한 약속 또한 API라고 볼 수 있습니다.
- 우리가 API를 작성한다는 의미는?
- 웹 어플리케이션(프론트엔드)에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다는 의미입니다.
- 우리가 작성 할 API에서 원하는 데이터를 받아 데이터베이스에 데이터를 저장하고, 저장되어 있는 데이터를 읽어서 웹 어플리케이션(프론트엔드)에 데이터를 제공하는 행위를 통해 사용자가 원하는 목적을 이룰 수 있게 해야 합니다.
- 그럼 REST API는 어떤 의미를 갖는 API인가?
- REST API, RESTful API 라고 들어보셨나요? 여기서 REST란 무슨 의미일까요?
- REST는 “Representational State Transfer”의 줄임 말로, 위키를 따르면 다음과 같습니다.
- REST(Representational State Transfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.
- 최대한 간단하게 설명하자면 URL, Headers, Method 등 네트워크 표현 수단을 사람이 봐도 이해하기 쉬운 표현으로 정의한다고 이해하면 됩니다. 또한 이 “REST 아키텍쳐”는 사람이 봐도 쉽게 이해할 수 있도록 “자원”을 정의하고 이 “자원”을 중심으로 표현을 구성하는 원칙을 제시합니다.
- REST API는 “REST 아키텍쳐”라는 규칙을 따르는 API라고 생각하시면 됩니다.
- REST API의 구성은 크게 세 가지로 이루어 집니다RESTful API
- 자원(Resource) - URL
- 우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있습니다. 쇼핑몰이라면 상품(Goods)에 대해서 정보를 관리할것이고 또는 장바구니(Carts)에 담긴 상품들도 관리해야겠죠.
- 행위 - HTTP method
- 이전에 배웠던 HTTP method 기억나시나요? GET, POST 등등이 있다고 했었는데요. 이것으로 해당 자원에 대한 행위를 표현할 수 있습니다. 예를 들어 GET 메소드는 해당 자원의 조회, POST 메소드는 해당 자원의 생성 이런 식으로요.
- 이렇게 나누어진 것을 보통 CRUD 라고 합니다. 자원에 대한 생성/조회/수정/삭제를 각각의 method 로 나누어놓은 것이지요.
- Create : 생성(POST) Read : 조회(GET) Update : 수정(PUT),(PATCH) Delete : 삭제(DELETE)
- 위 이미지의 예시처럼 쓰이는 것이 일반적인 method 사용방식입니다. 하지만 이것은 필수인 부분이 아니고 모든 곳에서 다 이렇게 지켜서 사용하지는 않습니다. 상황에 따라 저것을 완벽하게 지키기 어려운 부분들도 있으니 이 부분 참고 해주세요.
- 표현
- 해당 자원을 어떻게 표현할지에 대한 설명입니다. 보통 JSON, XML 같은 형식을 이용해서 자원을 표현합니다.
- HTTP에서는 Content-Type 이라는 헤더를 통해 표현 방법을 서술합니다.
- REST API 예시
-
router.get('/books', (req, res) => { res.json({ success: true, data: getAllBooks() }); });
- 위의 예시 코드는 /books 라는 URL을 통해 전체 책 목록을 불러와 응답해 주는 역할을 하는 API입니다.
- 위의 API는 REST API의 관점에서 보았을때 URL로 리소스를 구분할 수 있고 다른 표현이 없으므로 전체 리스트를 불러오는것을 짐작 할 수 있습니다. 또한 CRUD 중 Read를 담당하는 HTTP 메소드로 표현하여 REST한 API라고 볼 수 있습니다.
'코딩캠프 > 내일배움캠프' 카테고리의 다른 글
[ WIL ] 12.12~16 5주차 (0) | 2022.12.19 |
---|---|
[ TIL ] 12.16(금) 25일차 (0) | 2022.12.16 |
[ TIL ] 12.14(수) 23일차 (0) | 2022.12.14 |
[ TIL ] 12.13(화) 22일차 (0) | 2022.12.13 |
[ TIL ] 12.12(월) 21일차 (0) | 2022.12.12 |