본문 바로가기

IT좋은지식

REST API

REST란?

  • 로이 필딩박사가 2000년 자신의 논문에 처음으로 소개한 개념이다.
  • GET, PUT, POST, DELETE 등과 같은 동사와 HTTP 헤더, 상태코드 등 HTTP가 이미 서비스간 통신을 위해 제공하는 기능을 활용한다.
  • 웹의 장점을 최대한 활용할 수 있는 아키텍처
  • REST는 어떤 기술에 표준이 아니며, HTTP에 대한 일종의 아키텍처 제약사항이다.
  • 크게 본다면 리소스, 메서드, 메시지 3개의 요소로 구분된다.

REST 성숙도 모델이란?

API의 REST 원칙 준수 등급을 매길 수 있게 한다.

  • 레벨 0 : 클라이언트에서는 서비스별로 end point에 HTTP POST 요청을 한다.  (SOAP, XML-RPC) 해당
  • 레벨 1 : 서비스는 리소스 개념 (여러개의 URI) 을 지원하는 POST 요청을 한다.
  • 레벨 2 : HTTP의 동사나 상태코드 같이 HTTP의 특성을 이용하는 API를 기술한다. 
    • REST API의 출발점
    • GET 요청 캐싱가능 - 인프라 활용
  •  레벨 3 : 서비스를 HATEOAS(Hypertext As The Engine Of Application State, 애플리케이션 상태 엔진으로서의 하이퍼미디어) 원칙에 기반하여 설계하고, 아무런 사전 지식이 요구하지 않는 수준의 API를 기술한다.

잘 사용하려면 ?

결국 설계를 완료한 REST API를 사용하는것은 사람이다. 

사람이 잘 읽고 해석할 수 있도록 쉽게 읽고 이해할 수 있도록 일관성있게 만드는것이다. 

역시나 문서도 중요하다. (결국 API 문서를 보고 개발하게되니...)

 

문서를 내가봐도 잘 이해할 수 있도록 만들어보자! 끄읏 :)