REST API란?
REST API는 REST 아키텍처 스타일의 설계 원칙을 따르는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)입니다. REST는 Representational State Transfer의 줄임말로, 웹 API를 구축하는 방법에 대한 일련의 규칙 및 지침입니다.
API란?
API 란 애플리케이션 소프트웨어를 구축하고 통합하는 데 대한 일련의 정의와 프로토콜입니다. 이는 때때로 정보 사용자와 정보 제공자 간의 계약으로 지칭되며 소비자에게 필요한 콘텐츠(호출)와 생산자에게 필요한 콘텐츠(응답)를 구성합니다. 예를 들어, 날씨 서비스용 API 설계 에서는 사용자는 우편번호 를 제공하고, 생산자는 두 부분(첫 번째는 최고 기온, 두 번째는 최저 기온)으로 구성된 응답으로 답하도록 지정할 수 있습니다.
다시 말하면 정보를 검색하거나 기능을 수행하기 위해 컴퓨터 또는 시스템과 상호작용하려는 경우 API를 통해 원하는 작업이 무엇인지 시스템에 전달하여 시스템이 해당 요청을 이해한 다음 이행하도록 할 수 있습니다.
API를 사용자 또는 클라이언트, 그리고 사용자와 클라이언트가 얻으려 하는 리소스 또는 웹 서비스 사이의 조정자로 생각하면 됩니다. API는 조직이 보안, 제어, 인증을 유지 관리(누가 무엇에 액세스할 수 있는지 결정)하면서 리소스와 정보를 공유할 수 있는 방법이기도 합니다.
API의 또 다른 장점은 캐싱, 즉 리소스 검색 방법 또는 리소스의 출처에 대해 자세히 알 필요가 없다는 것입니다.
Red Hat 리소스
REST
REST는 프로토콜이나 표준이 아닌 아키텍처 제약 조건입니다. API 개발자는 다양한 방식으로 REST를 구현할 수 있습니다.
RESTful API를 통해 클라이언트 요청이 수행될 때 RESTful API는 리소스 상태에 대한 표현을 요청자 또는 엔드포인트에 전송합니다. 이 정보 또는 표현은 HTTP: JSON(Javascript Object Notation), HTML, XLT, Python, PHP 또는 일반 텍스트를 통해 몇 가지 형식으로 전송됩니다. JSON은 그 이름에도 불구하고 사용 언어와 상관이 없을 뿐 아니라 인간과 머신이 모두 읽을 수 있기 때문에 가장 널리 사용되는 파일 형식입니다.
그 외에 헤더 와 매개 변수는 요청의 메타데이터, 권한 부여, URI(Uniform Resource Identifier), 캐싱, 쿠키 등에 대한 중요한 식별자 정보를 포함하고 있기 때문에 RESTful API HTTP 요청의 HTTP 메서드 에서도 중요하다는 점을 유의해야 합니다. 요청 헤더 와 응답 헤더가 있으며, 각각 고유한 HTTP 연결 정보 및 상태 코드가 있습니다.
API가 RESTful로 고려되려면 다음 기준을 충족해야 합니다.
- 클라이언트-서버 아키텍처: 클라이언트, 서버, 리소스로 구성되어 있고 요청이 HTTP를 통해 관리됨
- 스테이트리스(stateless) 클라이언트-서버 커뮤니케이션: GET 요청 간에 클라이언트 정보가 저장되지 않으며, ��� 요청이 분리되어 있고 서로 연결되어 있지 않음
- 캐시 가능한 데이터: 클라이언트-서버 간 상호작용을 간소화함
- 구성 요소 간의 일관된 인터페이스: 정보가 표준 형식으로 전송되도록 함 이를 위한 요구 사항은 다음과 같습니다.
- 요청된 리소스가 식별 가능해야 하고 클라이언트에 전송된 표현과 구분되어야 합니다.
- 클라이언트가 수신하는 표현을 통해 리소스를 조작할 수 있어야 합니다(표현에는 해당 작업을 수행하는 데 충분한 정보가 포함되어 있음).
- 클라이언트에 반환되는 자기 기술적(Self-descriptive) 메시지에 클라이언트가 정보를 어떻게 처리해야 할지 설명하는 정보가 충분히 포함되어 있어야 합니다.
- 하이퍼텍스트/하이퍼미디어를 사용할 수 있어야 합니다. 즉, 클라이언트가 리소스에 액세스한 후 하이퍼링크를 사용해 현재 수행 가능한 기타 모든 작업을 찾을 수 있어야 합니다.
- 요청된 정보의 검색과 관련된 각 서버 유형(보안, 로드 밸런싱 등을 담당하는 서버 유형)을 클라이언트 에 보이지 않는 계층 구조로 구성하는 계층화된 시스템.
- 코드 온디맨드(선택 사항): 요청을 받으면 서버에서 클라이언트로 실행 가능한 코드를 전송하여 클라이언트 기능을 확장할 수 있는 기능.
REST API는 이러한 기준을 준수해야 하지만, 여전히 SOAP(단순 객체 액세스 프로토콜, Simple Object Access Protocol)와 같이 규정된 프로토콜보다는 사용하기가 더 간단한 것으로 간주됩니다. SOAP의 경우 XML 메시징, 내장된 보안 기능, 트랜잭션 컴플라이언스와 같은 특정 요구 사항으로 인해 속도가 더디고 더 무겁습니다.
이와 대조적으로 REST는 필요에 따라 구현 할 수 있는 일련의 지침으로, 이를 통해 REST API는 더 빨라지고 경량화되며 확장성이 증대되어 사물인터넷(IoT) 및 모바일 애플리케이션 개발에 가장 적합한 API가 됩니다.
Red Hat을 선택해야 하는 이유
Red Hat® Integration은 애플리케이션 연결 및 데이터 변환, 서비스 구성 및 오케스트레이션, 실시간 메시지 스트리밍, 변경 데이터 캡처, API 관리를 모두 한 곳에서 제공하여 하이브리드 인프라 전반에서 애플리케이션과 데이터를 연결하는 API 중심 솔루션입니다. 이는 클라우드 네이티브 플랫폼 및 툴체인과 함께 현대적인 앱 개발을 지원합니다.
Red Hat 3scale API Management는 Red Hat Integration의 구성 요소로, 성능, 관리, 보안 및 성장을 고려해 구축된 인프라 플랫폼에서 API를 공유, 배포, 제어하고 수익화할 수 있도록 돕습니다. 온프레미스, 클라우드 또는 둘 다에 3scale 구성 요소를 배치하세요.
레드햇 공식 블로그
레드햇 공식 블로그에서 고객, 파트너, 커뮤니티 에코시스템 등 현재 화제가 되는 최신 정보를 살펴 보세요.