REST란?
개괄적으로 보자면 REST(표현형 상태 전송)는 API의 작동 방식에 대한 조건을 강제하는 소프트웨어 아키텍처입니다. REST는 원래 인터넷과 같은 복잡한 네트워크에서의 통신을 관리하기 위한 지침으로 만들어졌습니다. REST 기반 아키텍처를 사용하면 높은 성능의 신뢰할 수 있는 통신을 대규모로 지원할 수 있습니다. 손쉽게 구현하고 수정할 수 있어 모든 API 시스템에 가시성과 플랫폼 간 이동성을 제공합니다.
API 개발자는 여러 아키텍처를 사용하여 API를 설계할 수 있습니다. REST 아키텍처 스타일을 따르는 API를 REST API라고 합니다. REST 아키텍처를 구현하는 웹 서비스는 RESTful 웹 서비스라고 합니다. RESTful API라는 용어는 일반적으로 RESTful 웹 API를 나타냅니다. 그러나 REST API와 RESTful API라는 용어를 같은 의미로 사용할 수 있습니다.
다음은 REST 아키텍처 스타일의 몇 가지 원칙입니다.
통합 인터페이스
통합 인터페이스는 모든 RESTful 웹 서비스 설계의 기본입니다. 이는 서버가 정보를 표준 형식으로 전송함을 나타냅니다. 형식이 지정된 리소스를 REST에서는 표현이라고 합니다. 이 형식은 서버 애플리케이션의 리소스 내부 표현과 다를 수 있습니다. 예를 들어, 서버는 데이터를 텍스트로 저장하지만 HTML 표현 형식으로 전송할 수 있습니다.
통합 인터페이스에는 다음과 같은 네 가지 아키텍처 제약이 따릅니다.
-
요청은 리소스를 식별해야 합니다. 이 작업은 통합 리소스 식별자를 사용하여 수행됩니다.
-
클라이언트는 필요한 경우 리소스를 수정하거나 삭제할 수 있는 충분한 정보를 리소스 표현에 보유하고 있습니다. 서버는 리소스를 자세히 설명하는 메타데이터를 전송하여 이 조건을 충족합니다.
-
클라이언트는 표현을 추가로 처리하는 방법에 대한 정보를 수신합니다. 서버는 클라이언트가 정보를 가장 잘 사용할 수 있는 방법에 대한 메타데이터가 포함된 자체 설명 메시지를 전송하여 이 작업을 수행합니다.
-
클라이언트는 작업을 완료하는 데 필요한 기타 모든 관련 리소스에 대한 정보를 수신합니다. 서버는 클라이언트가 더 많은 리소스를 동적으로 검색할 수 있도록 표현에 하이퍼링크를 전송하여 이 작업을 수행합니다.
상태 없음
REST 아키텍처에서 상태 없음이란 서버가 이전의 모든 요청과 독립적으로 모든 클라이언트 요청을 완료하는 통신 방법을 말합니다. 클라이언트는 어떤 순서로든 리소스를 요청할 수 있으며, 모든 요청은 상태 없음으로 지정되거나 다른 요청으로부터 격리됩니다. 이 REST API 설계 제약 조건은 서버가 매번 요청을 완전히 이해하고 이행할 수 있음을 의미합니다.
계층형 시스템
계층형 시스템 아키텍처에서 클라이언트는 클라이언트와 서버 사이의 다른 승인된 중개자에 연결할 수 있으며, 계속해서 서버로부터 응답을 수신합니다. 또한 서버는 요청을 다른 서버로 전달할 수 있습니다. 보안, 애플리케이션, 비즈니스 로직 등 다수의 계층이 있는 여러 서버에서 실행되도록 RESTful 웹 서비스를 설계하고 클라이언트 요청을 이행하도록 할 수 있습니다. 이러한 계층은 클라이언트에게는 공개되지 않은 상태로 유지됩니다.
캐싱 가능성
RESTful 웹 서비스는 캐싱을 지원합니다. 캐싱은 서버 응답 시간을 개선하기 위해 클라이언트나 중개자에 일부 응답을 저장하는 프로세스입니다. 예를 들어 모든 페이지에 공통된 머리글과 바닥글 이미지가 있는 웹 사이트를 방문한다고 가정해 보겠습니다. 새 웹 사이트 페이지를 방문할 때마다 서버는 동일한 이미지를 다시 전송해야 합니다. 이를 방지하기 위해 클라이언트는 첫 번째 응답 후 이러한 이미지를 캐시하거나 저장한 다음 캐시에서 직접 이미지를 사용합니다. RESTful 웹 서비스는 스스로를 캐싱 가능 또는 캐싱 불가능으로 정의하는 API 응답을 사용하여 캐싱을 제어합니다.
RESTful API란?
RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하는 데 사용하는 인터페이스입니다. 대부분의 비즈니스 애플리케이션은 다양한 작업을 수행하기 위해 다른 내부 및 타사 애플리케이션과 통신해야 합니다. 예를 들어 월별 급여명세서를 생성하려면 내부 계정 시스템이 고객의 은행 시스템과 데이터를 공유하여 청구서 발행을 자동화하고 내부 근무 시간 기록 애플리케이션과 통신해야 합니다. RESTful API는 안전하고 신뢰할 수 있으며 효율적인 소프트웨어 통신 표준을 따르므로 이러한 정보 교환을 지원합니다.
RESTful API는 어떻게 작동하나요?
RESTful API의 기본 기능은 인터넷 브라우징과 동일합니다. 클라이언트는 리소스가 필요할 때 API를 사용하여 서버에 접속합니다. API 개발자는 클라이언트가 REST API를 사용하는 방법을 서버 애플리케이션 API 설명서를 통해 설명합니다. 모든 REST API 직접 호출의 일반적인 단계는 다음과 같습니다.
-
클라이언트가 서버에 요청을 보냅니다. 클라이언트는 API 설명서에 따라 서버가 이해할 수 있는 방식으로 요청 형식을 지정합니다.
-
서버는 클라이언트를 인증하고 클라이언트가 해당 요청을 보낼 권한이 있는지 확인합니다.
-
서버는 요청을 수신하고 내부적으로 처리합니다.
-
서버는 클라이언트에게 응답을 반환합니다. 응답에는 요청이 성공적이었는지 여부를 클라이언트에게 알려주는 정보가 포함됩니다. 응답에는 클라이언트가 요청한 모든 정보도 포함됩니다.
REST API 요청 및 응답 세부 정보는 API 개발자가 API를 설계하는 방식에 따라 약간 다릅니다.