Back-End

REST API

kwaktaem 2022. 2. 15. 19:42

REST API

  • REST API에서 REST는 Representational State Transfer의 약자로 소프트에어 프로그램 아키텍처의 한 형식이다.
  • 자원의 이름 (자원의 표현)으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미한다.
  • REST는 기본적으로 웨의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

구체적인 개념

  • HTTP URI를 통해 자원을 명시하고, HTTP Method (POST, GET, PUT, DELETE)를 통해서 해당 자원에 대한 CRUD OPERATION을 적용하는 것을 의미한다.
  • 즉, REST는 자원 기반의 설계의 중심에 Resource가 있고, HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍처를 의미
  • CRUD Operation
    • Create : 생성 (POST)
    • Read : 조회 (GET)
    • Update : 수정 (PUT)
    • Delete : 삭제 (DELETE)
    • HEAD : Header 정보 조회

REST 구성

  • 자원 (Resource) - URL
  • 행위 (Verd) - HTTP Method
  • 표현 (Representaions)

1. 자원 (Resource) URL

  • 모든 자원에 고유한 ID가 존재하며, 이 지원은 Server에 존재한다.
  • 자원을 구별하는 ID는 /orders/order_id/1 과 같은 HTTP URI다.

2. 행위 (Verd) - HTTP Method

  • HTTP 프로토콜의 Method를 사용한다.
  • HTTP 프로토콜은 GET, POST, PUT, DELETE와 같은 메서드를 제공한다.

3. 표현 (Representaions)

  • 클라이언트가 자원의 상태에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보낸다.
  • REST에서 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 응답으로 나타낼 수 있다.
  • 현재는 JSON으로 주고 받는 것이 대부분이다.

4. REST의 장단점

  • 장점
    • HTTP 프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
    • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능하다
    • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
    • 서버와 클라이언트의 역할을 명확하게 분리한다.
    • 여러가지 서비스 다지인에서 생길 수 있는 문제를 최소화한다.
  • 단점
    • 표준이 존재하지 않는다.
    • 사용할 수 있는 Method가 4가지 밖에 없다.
      • HTTP Method 형태가 제한적이다.
    • 구형 브라우저가 아직 제대로 지원해주지 못하는 부분이 있다.
      • PUT, DELETE를 사용하지 못한다.
      • PushState를 지원하지 않는다.

5. REST API 특징

  • 사내 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있다.
  • REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.