REST-API 란?
REST-API란 REST를 기반으로 API를 REST하게 만드는 것을 뜻하는데, 여기서 REST가 무엇일까?
REST는 위키백과에 따르면 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로, 엄격하게는 네트워크 아키텍처 원리의 모음이라고 정의되어있다. HTTP 위에 쿠키 등을 통한 세션 트랙킹 같은 별도의 전송 계층 없이 전송하기 위한 아주 간단한 인터페이스를 말한다고도 되어있다.
REST 아키텍처에는 적용되는 6가지 제한 조건이 있는데 공식문서를 통해 자세히 읽어보도록 하자.
문서에 따르면 REST의 정의는 다음과 같은 것 같다. 리소스를 이름으로 구분하여 주고받는 모든 것.
API는 위키백과에 따르면 컴퓨터와 컴퓨터 프로그램 사이의 연결이라고 한다. 일종의 컴퓨터와 프로그램 사이의 통신길 같은 것이라고 볼 수 있다. 일종의 소프트웨어 인터페이스이고 다른 종류의 소프트웨어에 서비스를 제공한다고도 한다.
다음의 정의들을 바탕으로 결국 REST-API란 REST의 원리,규칙을 따라 설계하는 API(컴퓨터와 프로그램 사이의 연결루트)라고 볼 수 있다.
REST-API를 설계할때 준수해야하는 몇가지 규칙이 있는데 그 부분을 살펴보도록 하자.
간결하고 형식적이며 예측 가능해야함
- API 제작시에는 요청과 응답에 대한 정보가 충분히 들어있어야 한다. 하나의 자료는 하나의 URL로 만들어, 해당 URL 하나를 봤을때 그게 무슨 역할인지 예측이 가능해야한다.
클라이언트와 서버 역할 구분
- 브라우저(클라이언트)는 요청만 한다. 서버는 응답만 한다. 클라이언트가 응답을 처리해서는 안된다.
의존성X
- 각각의 요청은 독립적인 존재다. 서로에 대해 의존성(연관성)이 없어야 한다.
REST-API와 비슷한 존재로 GraphQL이 존재하는데, GraphQL의 대한 점은 다음 게시글에서 살펴보고 여기선 둘의 차이점에 대해 알아보자.
요청방식
REST-API | GraphQL | |
조회 | GET | Query |
생성 | POST | Mutation |
삭제 | DELETE | |
수정 | PUT |
REST-API의 또다른 차이로는 주소처럼 이름이 생겼다는 부분도 있다.
'📖 TIL > Node.js' 카테고리의 다른 글
[Node.js] Scraping & Crawling (0) | 2022.02.11 |
---|---|
[Node.js] package.json (0) | 2022.02.04 |
[Node.js] Graphql-API (0) | 2022.01.29 |
[Node.js] node-module설치 (0) | 2022.01.28 |
[Node.js] Node.js 설치 (0) | 2022.01.26 |