REST API란?

|

1. REST API

1) REST API란?

  • REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이필딩의 박사학위 논문에서 최초로 소개되었습니다.
  • 웹의 장점을 최대로 활용할수 있는 아키텍처로서 REST를 발표했습니다.

2) REST의 구성

  • 쉽게 말해 REST API는 다음이 구성으로 이루어져 있습니다.
  • 자원(RESOURCE) - URI
  • 행위(VERB) - HTTP METHOD
  • 표현(REPRESENTATIONS)

3) REST의 특징

  • 1) 클라이언트 / 서버구조 : 일관적인 인터페이스로 분리되어야 한다. 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 구조로 각각의 역할이 확실히 구분되기 때문에 클라이언트와 서버에서 개발해야 할 내용이 명확해지고 서로간 의존성이 줄어들게 됩니다.
  • 2) 무상태(stateless) : 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안된다. 단순 API 서버는 들어오는 요청만을 단순히 처리합니다. 세션정보나 쿠키정보를 별도로 저장하고 관리하지 않기 때문에 요청을 단순히 처리하면 됩니다.
  • 3) 캐시처리가능 : WWW에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다. 잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여, 성능을 향상시킨다.
  • 4) 계층화(Layered System) : 클라이언트는 보통 대상 서버에 직접 연결 되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는데 유용하다.
  • 5) 자체 표현구조(Self-descriptiveness) : REST의 또 다른 특징 중 하나는 REST API 메시지만 보고도 이를 쉽게 표현할 수 있는 구조로 되어있습니다.

4) REST API 디자인 가이드

  • REST API 설계 시 가장 중요한 항목은 다음의 2가지로 요약할 수 있다.
  • 첫 번째, URI는 정보의 자원을 표현해야 한다.
  • 두 번째, 자원에 대한 행위는 HTTP METHOD(GET,POST,PUT,DELETE)로 표현한다.

4-1) REST API 중심 규칙

  • 1) URI는 정보의 자원을 표현해야 한다 ( 리소스명은 동사보다는 명사를 사용 ) GET /members/delete/1
  • 위와 같은 방식은 REST를 제대로 적용하지 않은 URI입니다. URI는 자원을 표현하는데 중점을 두어야합니다. DELETE와 같은 행위에 대한 표현이 들어가서는 안됩니다.

  • 2) 자원에 대한 행위는 HTTP method(GET,POST,PUT,DELETE)로 표현
  • 위의 잘못 된 URI를 HTTP Method를 통해 수정해 보면 DELETE /members/1
  • 으로 수정할 수 있겠습니다.
  • 회원정보를 가져올 때는 GET, 회원 추가 시의 행위를 표현하고자 할 때는 POST METHOD를 사용하여 표현합니다.

  • 3) POST, GET, PUT, DELETE 의 4가지 METHOD를 가지고 CRUD를 할 수 있다.
  • POST : POST를 통해 해당 URI를 요청하면 리소스를 생성합니다
  • GET : GET를 통해 해당 리소스를 조회합니다. 리소스를 조회하고 해당 도큐먼트에 대한 정보를 가져온다
  • PUT : PUT를 통해서 해당 리소스를 수정합니다.
  • DELETE : DELETE를 통해 리소스를 삭제한다.

  • 다음과 같은 식으로 URI는 자원을 표현하는데에 집중하고 행위에 대한 정의는 HTTP METHOD를 통해 하는 것이 REST한 API 설계하는 중심 규칙입니다.

5) REST의 주요한 목표

  • 구성 요소 상호작용의 규모 확장성
  • 인터페이스의 범용성
  • 구성 요소의 독립적인 배포
  • 중간적 구성요소를 이용해 응답 지연 감소, 보안을 강화, 레거시 시스템을 인캘슙레이션

Comments