RESTful API (Representational State Transfer)은 REST 아키텍처 원칙을 따르는 응용 프로그래밍 인터페이스(API)입니다. RESTful API는 클라이언트-서버 아키텍처에서 HTTP를 통해 두 대의 컴퓨터가 통신할 수 있게 합니다.
API란 ?
웹에서의 API는 클라이언트와 웹 리소스 사이의 게이트웨이입니다.
클라이언트
- 클라이언트는 API를 사용하는 사람이거나 소프트웨어 시스템일 수 있습니다.
- 예) 개발자들은 날씨 혹 금융 데이터등등 액세스하는 프로그램들을 작성할 수 있습니다.
리소스
- 리소스는 클라이언트에게 제공되는 정보입니다.
- 리소스는 이미지 텍스트 동영상 등 모든 유형의 데이터들을 의미합니다.
REST란 무엇일까요?
- REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌습니다. REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있습니다. 쉽게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있습니다.
- API 개발자는 여러 아키텍처를 사용하여 API를 설계할 수 있습니다. REST 아키텍처 스타일을 따르는 API를 REST API라고 합니다. REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 합니다. RESTful API라는 용어는 일반적으로 RESTful 웹 API를 나타냅니다.
REST의 정의
- 00년대에 로이 필딩에 의해 만들어진 소프트웨어 아키택처 스타일입니다.
- REST 설계 원칙을 따르는 모든 API는 RESTful로간주합니다.
아키택처 제약 사항
- 일관된 인터페이스
- 리소스는 단일 URL을 통해 고유하게 식별되어야 하며, HTTP 메소드를 사용하여 리소스를 조작해야 합니다.
- 무상태성(Stateless)
- 클라이언트의 각 요청은 필요한 모든 정보를 포함해야 하며, 서버는 클라이언트 상태를 저장하지 않아야 합니다.
- RESTful 리소스 캐싱
- 리소스는 명시적으로 표시되지 않는 한 캐싱이 가능해야 합니다.