REST

숭이·2021년 5월 12일

네트워크

목록 보기
3/11

REST(Representational State Transfer)

  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것
  • 구체적으로 URI를 통해 고유한 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당자원에 대한 CRUD 동작을 수행하는 것
  • REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍쳐 스타일이다.
  • REST의 구성요소
    1. 자원(URI)
      모든 자원에 고유한 ID가 존재하고 이 자원은 Server에 존재
      Client는 URI를 통해 자원을 지정하고 해당자원의 상태에 대한 조작을 서버에 요청
    2. 행위
      HTTP 프로토콜의 Method를 사용한다.(GET, POST, PUT, DELETE)
    3. 표현
      Client가 조작을 요청하면 Server는 이에 적절한 응답을 보낸다.
      일반적으로 JSON 혹은 XML을 통해 데이터를 주고받는다.

HTTP Method

POST : 자원의 생성(CREATE)
GET : 자원의 조회(SELECT)
PUT : 자원의 수정(UPDATE)
DELETE : 자원의 삭제(DELETE)

REST의 장단점

  • 장점
    1. HTTP 프로토콜을 그대로 활용한다.
      -> REST API 사용을 위한 별도의 인프라를 구축할 필요가 없음
      -> HTTP 프로토콜을 따르는 모든 플랫폼에서 사용이 가능하다.
      -> 서버와 클라이언트의 역할을 명확하게 분리한다.
      -> 기존의 GET/POST 외에 PUT, DELETE 방식을 사용하여 리소스에 대한 CRUD 처리를 할 수 있다.
  • 단점
    1. 정해진 표준이 없다(암묵적인 표준만 정해져 있음)
      • 하이픈('-')은 사용 가능하지만 언더바('_')는 사용하지 않는다.
      • 특별한 경우를 제외하고 대문자 사용은 하지 않는다(대소문자 구분을 하기 때문에)
      • URI 마지막에 슬래시('/')를 사용하지 않는다.
      • 슬래시('/')로 계층 관계를 나타낸다.
      • URI는 명사를 사용한다.
    2. 사용할 수 있는 메소드가 4가지밖에 없다.(GET, POST, PUT, DELETE)

REST API

  • OPEN API : 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스
    예를들어 통계청에서 제공하는 데이터, 구글맵등은 데이터를 외부 응용프로그램에서 사용할 수 있도록 OPEN API를 제공한다.
    대부분의 OPEN API는 REST 방식으로 지원!!

  • 기존의 Service VS REST Service

    • 기존의 Service : 요청에 대한 처리를 한 후 가공된 데이터를 이용하여 특정 플랫폼에 적합한 형태의 View로 만들어서 반환.

    • REST Service : 데이터 처리만 한다거나, 처리 후 반환될 데이터가 있다면 JSON이나 XML 형식으로 전달. View 에 대해 신경 쓸 필요가 없음
      -> 다양한 플랫폼이 등장한 지금 데이터만 신경쓰는 REST 방식을 사용하는 OPEN API가 주목받고 있음!!

    • 기존Service와 REST Service 코드 비교

RESTful

  • RESTful : 일반적으로 REST API를 제공하는 웹 서비스를 RESTful 하다고 말함.
  • 누군가 공식적으로 발표한 것이 아닌 REST원리를 따르는 시스템을 통상적으로 지칭하는 용어

0개의 댓글