본문 바로가기
Java Script

JS - REST API

by 호지96 2021. 5. 26.

1. REST API

 

  1. REST API 에서 REST"Representational State Transfer" 의 약자이다.
  2. 로이 필딩의 박사학위 논문에서 웹의 장점을 최대한 활용할 수 있는 아키텍처라는 명목으로 처음 등장했다.
  3. HTTP URI 로 웹상의 자원들을 표현하고, HTTP Method 를 통해 상태를 정의하는 방식이다.

 

## Root - Endpoint ( 혹은 root - URL ) ##

  1. 요청을 보내는 주소의 시작점을 뜻한다.
  2. 깃헙 APIroot - endpointhttps://api.github.com 일 것이다.

 

## Path ##

  1. path 는 요청을 보내는 리소스를 정의한다.
  2. https://api.github.com/user 에서 'user'path 가 된다.

-----------------------------------------------------------------------------------

2. Request & Response

 

2 - 1) 메세지 조회

## Request ##

GET /{githubID}/messages

요청을 할 때는 추가적인 파라미터( Query parameter )를 사용할 수 있다.

 

## Response ##

[
 {
  "id": 1,					// 고유 아이디
  "username": "전지호",	  // 사용자 이름
  "text": "안녕하세요",		 // 본문 내용
  "roomname": "로비",		   // 방이름
  "date": "2021-05-24T03",    // 작성한 시간
 },
 // 여러 개의 메세지
]

JSON 형식으로 응답이 온다.

 

2 - 2) 메세지 추가

## Request ##

POST /{githubID}/messages

  1. 메세지는 24 시간마다 자동으로 리셋된다.
  2. 요청 본문엔 다음 내용을 반드시 포함해야 한다.

* 요청 형식 : JSON
MIME 타입 : application/json

parameter 형식 설명 필수 포함 여부
username 문자열 사용자 이름 필수
text 문자열 본문 내용 필수
roomname 문자열 방 이름 필수

 

## Response ##

{
	"id": 5
}

JSON 형식으로 응답이 온다.

 

2 - 3) 메세지 초기화

## Request ##

POST /{githubID}/clear

요청 본문은 필요하지 않다.

 

## Response ##

{
	"message: "message initialized!"
}

성공시 JSON 형식으로 응답이 온다.

-----------------------------------------------------------------------------------

3. REST API 의 디자인

 

  1. REST API 는 공식적으로 정해진 뚜렷한 규격이 없다, 그래서 REST API 특징( 원칙 )에 맞춰 조금씩은 다른 모습을 하고 있다.
  2. 그래도 REST API 의 모범 사례는 여전히 논의되고 통합되고 있기 때문에 수많은 디자인 중에 분명히 보기 좋은 REST API 디자인은 있다.

 

## REST API 의 기존 5 가지 설계 지침 ##

  1. 리소스 ( URI )
  2. HTTP 메소드
  3. HTTP 헤더
  4. 쿼리 매개 변수
  5. 상태 코드

-----------------------------------------------------------------------------------

4. Open API

 

  1. "오픈"이라는 말을 통해 알 수 있듯 API 는 누구에게나 열려있다. 그러나 이는 "무제한으로 이용할 수 있다"는 의미는 아니고, 보통은 이용 수칙에 따른 제한( 가격, 정보의 제한 등 )이 존재한다.

 

## API Key ##

  1. API 를 이용하기 위해서는 API Key 라는 것이 필요하다. 간혹 필요하지 않은 경우도 있긴 하다.
  2. 대부분의 경우 비용을 들여 자원을 제공해주는 서버 입장에서, 아무런 조건 없이 익명의 클라이언트에게 정보를 줄 이유가 딱히 없기 때문에 Key 가 필요하다.

'Java Script' 카테고리의 다른 글

JS - SSR & CSR  (0) 2021.05.25
JS - 클라이언트 서버  (0) 2021.05.25
JS - HTTP  (0) 2021.05.25
JS - Tree&Graph Search  (0) 2021.05.14
JS - Graph & Tree & BST  (0) 2021.05.13