REST API(Representation State Transfer)
REST API 개요
REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스를 뜻한다. REST는 Representational State Transfer의 줄임말이다.
API(Application Programming Interface)란
애플리케이션 소프트웨어를 구축하고 통합하는 정의 및 프로토콜 세트이다. 때때로 API는 정보 제공자와 정보 사용자 간의 계약으로 지칭되고, 소비자에게 필요한 콘텐츠(Request)와 생산자에게 필요한 콘텐츠(Response)를 구성한다.
컴퓨터나 시스템과 상호 작용하여 정보를 검색하거나 기능을 수행하고자 할 때 API는 사용자가 원하는 것을 시스템에 전달할 수 있게 지원하여 시스템이 이 요청을 이해하고 이행하도록 할 수 있다.
API를 사용자 또는 클라이언트, 그리고 사용자와 클라이언트가 얻으려 하는 리소스사이의 조정자로 생각하면 된다. API는 조직이 보안 및 제어를 유지관리(누가 무엇에 액세스할 수 있는지 결정)하면서 리소스와 정보를 공유할 수 있는 방법이기도하다.
API의 또 다른 이점은 리소스 검색 방법 또는 리소스의 출처에 대한 지식 없이도 사용이 가능하다는 점이다.
REST API란
- 정의
- 자원의 이름(자원의 표현)으로 구분하여 해단 자원의 상태(정보)를 주고 받는 모든 것을 의미
REST는 프로토콜이나 표준이 아닌 아키텍처 원칙 세트이다. API 개발자는 REST를 다양한 방식으로 구현할 수 있다.
RESTful API를 통해 요청이 수행될 때 RESTful API는 리소스 상태에 대한 표현을 요청자에게 전송한다. 이 정보 또는 표현은 HTTP: JSON, HTML, XLT 또는 일반 텍스트를 통해 몇 가지 형식으로 전송된다.
API가 RESTful로 간주되려면 아래의 기준을 따라야한다.
- 클라이언트, 서버 및 리소스로 구성되어있으며 요청이 HTTP를 통해 관리되는 클라이언트-서버 아키텍처
- Stateless(무상태) 클라이언트-서버 커뮤니케이션: 요청 간에 클라이언트 정보가 저장되지 않으며, 각 요청이 분리되어 있고, 서로 연결되어 있지 않음
- 클라이언트-서버 상호 작용을 간소화하는 캐시 가능 데이터
- 정보가 표준 형식으로 전송되도록 하기 위한 구성 요소 간 통합 인터페이스
- 요청된 정보를 검색하는 데 관련된 서버의 각 유형을 클라이언트가 볼 수 없는 계층 구조로 체계화하는 계층화된 시스템
- 선택 사항 : 요청을 받으면 서버에서 클라이언트로 실행 가능한 코드를 전송하여 클라이언트 기능을 확장할 수 있는 기능
REST API는 따라야 할 기준이 잇지만, 속도를 저하시키고 더 무겁게 마나드는 XML 메시징, 빌트인 보안 및 트래잭션 컴플라이언스처럼 특정 요구 사항이 있는 SOAP(Simple Object Access Protocol)등의 규정된 프로토콜보다 사용하기 쉬운 것으로 간주된다.
이것과 대조적으로 REST는 필요에 따라 구현할 수 있는 일련의 지침으로, 이를 통해 REST API는 더 빨라지고, 경량화되었다.