RESTful API 란?

Asher Park·2023년 4월 17일
0
post-thumbnail

RESTful API 란?

REST(Representational State Transfer) 원칙을 따르는 API


REST 란?

  • Representational State Transfer 의 약자.
  • 자원의 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미.
  • 웹 서비스와 클라이언트 애플리케이션의 상호 작용을 위한 아키텍쳐 스타일.

REST의 구성요소

  • 자원, 자원의 이름, URI
    시스템 내의 모든 것을 자원으로 간주한다.
    자원은 웹 서비스에서 제공하는 정보 또는 기능을 의미하며, 고유한 ID를 가지고 이를 통해 식별된다.

  • 자원의 상태
    서버에서 관리되는 해당 자원의 데이터 또는 속성을 의미한다.
    이 상태는 시간에 따라 변할 수 있으며, 클라이언트의 요청에 따라 변경 될 수 있다.
    예를 들어, 쇼핑몰의 특정 상품은 가격, 수량, 설명 등의 상태를 가지고 있다.

  • 표현
    자원의 상태를 클라이언트-서버 간에 교환 될 수 있는 형식으로 변환한 것을 의미한다.
    JSON, XML, HTML 등의 형식으로 작성될 수 있으며, 클라이언트가 이해할 수 있는 형태로 제공된다.

  • 행위
    클라이언트는 URI을 이용해 자원을 명시하고, 이를 조작하기 위해 메서드를 사용한다.
    HTTP 프로토콜에서는 GET, POST, PUL DELETE같은 메서드를 제공한다.

REST의 특징

  1. 클라이언트 - 서버 구조 (Client-Server Architecture)
    클라이언트와 서버는 각각 독립적인 역할을 수행하며, 서로의 구현(개발)에 관여하지 않는다.
    자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client.

  2. 무상태 (Stateless)
    서버는 클라이언트의 상태를 저장하지 않는다.
    각 요청은 독립적으로 처리되고, 클라이언트는 필요한 모든 정보를 요청에 포함해야 한다.

  3. 캐시 처리 (Cacheable)
    클라이언트는 서버로부터 받은 응답을 캐시에 저장할 수 있어야 한다.
    캐싱을 통해 네트워크의 부하를 줄이고 성능을 향상 시킬 수 있다.

  4. 계층화 (Layered System)
    서버는 여러 계층으로 구성될 수 있고, 각 계층은 독립적인 기능을 수행한다.
    API 서버는 순수 비즈니스 로직을 수행한다.
    이를 통하여 시스템의 유연성과 확장성을 향상 시킬 수 있다.

  5. 인터페이스 일관성 (Uniform Interface)
    일관된 인터페이스를 제공하여 상호작용을 단순화하고 재사용성을 높인다.
    표준 HTTP 메서드를 사용하여 자원에 접근하고 조작한다.

즉,
웹에 존재하는 모든 자원에 고유한 URI를 부여하여 자원을 명시하고,
HTTP 메서드를 사용하여 자원을 조작하는 행위를 의미한다.


RESTful의 개념

  • REST 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어.
  • REST 아키텍처를 따르는 API를 제공하는 웹서비스를 'RESTful' 하다고 한다.
  • RESTful은 REST를 REST답게 쓰기 위한 방법으로, 누군가 공식적으로 발표한 것이 아니다.

RESTful API

  • REST 아키텍처 기반으로 구현된 API.
  • REST 답게 잘 작성된 API.
  • 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
profile
배움에는 끝이없다

0개의 댓글