RESTful API 정리

강보훈·2021년 12월 20일
0

REST

Representational State Transfer의 약자로 웹 상의 자원을 HTTP URI 형태로 표현하고 HTTP Method를 통해 자원을 조작할 수 있는 아키텍처를 의미한다.

REST 특징

Server-Client 구조

  • 자원이 있는 쪽이 Server, 자원 요청하는 쪽이 Client가 된다.
    • Server -> API를 제공하고 비지니스 로직 처리 및 저장을 담당
    • Client -> 사용자 인증, Context등을 관리한다.
  • 서로 간의 의존성이 줄어듬

Stateless

  • Client의 context를 서버에서 저장하지 않는다.
  • Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다.
    • 각 서버는 Client의 요청만 단순히 처리
    • 서버의 처리 방식에 일관성을 부여하고, 부담이 줄어든다.

Cachable

  • Client는 응답을 캐싱할 수 있다.

Layered System

  • Client는 서버에 직접 연결한 건지, 중간 계층을 거친건지 알 수 없어야 한다.
    그저 Client는 서버만 호출하고 서버는 다중계층으로 구성해서 보안 및 확장성을 챙길 수 있다.

Code-On-Demand - Optional

  • 서버로부터 script를 받아서 Client에서 실행한다.

Uniform Interface

  • URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행
  • HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용가능하다
    • 특정 언어나 기술에 종속되지 않음

REST 장점

  • HTTP 프로토콜을 사용하기에 별도의 인프라 구축필요가 없다.
  • 특정 언어나 기술에 종속되지 않는다.
  • REST Api 메세지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악 가능하다.
  • 서버와 클라이언트의 역활을 명확하게 분리한다.

RESTful 기본 규칙

  • 자원 각각을 메세지에 의해 식별 가능해야 한다. 자원은 XML이나 JSON형태를 가진다.
  • 자원에 대한 행위는 HTTP Method(GET, POST, UPDATE, DELETE)로 표현한다.
  • URI에 HTTP Method가 들어가면 안된다.
  • URI에 동사가 들어가면 안된다.
profile
3년차 안드로이드 개발자입니다.

0개의 댓글