Rest API, RESTFUL API

• REST란?

REpresentational State Transfer 약자

=> 자원을 이름으로 구분해 해당 자원의 상태를 주고 받는 모든 것

 

즉, 자원의 표현에 의한 상태 전달!

  1. 자원의 표현?
    자원 = 해당 SW가 관리하는 모든 것(문서, 그림, 데이터  ...)
    자원의 표현 = 그 자원을 표현하기 위한 이름 
    ex) DB의 학생 정보가 자원 -> 'students'가 자원의 표현

  2. 상태(정보) 전달
    데이터가 요청되는 시점에 자원의 상태 전달
    JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적임

 

∘ 개념

  • HTTP URI를 통해 자원을 명시하고,
    HTTP Method를 통해 해당 자원에 대한 CRUD 연산을 적용하는 것을 의미함
  • 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 ID인 HTTP URI를 부여함
  • REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용
     -> 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일

 

∘ 특징

  1. Server-Client 구조
    자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client
  2. Stateless(무상태)
    HTTP 프로톹콜은 Stateless 프로토콜이므로 REST 역시 무상태성
  3. Cacheable(캐시 처리 기능)
    웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라 활용 가능함
  4. Layered System(계층 구조)
    클라이언트와 서버 분리되어 있음
  5. Uniform Interface(인터페이스 일관성)
    HTTP 표준 프로토콜에만 따른다면 모든 플랫폼에서 사용 가능
  6. Self-Descriptiveness(자체 표현)
    요청 메시지만 보고도 쉽게 이해할 수 있음

• REST API

- API가 뭔데?

Application Programming Interface

응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

 

- REST API란?

REST의 특징을 기반으로 서비스 API를 구현한 것

각 요청이 어떤 동작이나 정보를 위한 것인지를 요청의 모습 자체로 추론이 가능

서버의 DB 등에서 클라이언트로 REST의 특징을 살려서 데이터를 특정형태에 맞게 요청하고 받아오는 작업


• RESTFUL API

- RESTFUL이 뭔데?

REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어

REST API를 제공하는 웹 서비스를 RESTful 하다고 할 수 있음

 

- RESTFUL API

REST의 6가지 설계 규칙을 잘 지켜서 설계된 API

요청을 보내는 주소만으로도 어떤 것을 요청하는지 파악 가능

URI는 정보의 자원만 표현해야 하고, 자원의 행위는 HTTP Method에 명시하는 것

(자세한 내용은 생략 ...)

'WEB' 카테고리의 다른 글

CORS? 어떻게 해결하지?  (0) 2023.05.10
Node.js vs 브라우저 환경  (0) 2023.05.08
쿠키 vs 세션 vs 웹 스토리지  (0) 2023.05.05
XML, JSON, YAML  (0) 2023.04.28
MPA/SPA  (0) 2023.04.23