API(애플리케이션 프로그래밍 인터페이스)는 애플리케이션이나 디바이스가 서로 간에 연결하여 통신할 수 있는 방법을 정의하는 규칙 세트입니다. REST API는 REST(REpresentational State Transfer) 아키텍처 스타일의 디자인 원칙을 준수하는 API입니다. 이러한 이유로 REST API를 RESTful API라고도 합니다.
컴퓨터 과학자인 Roy Fielding 박사가 2000년에 자신의 박사학위 논문에서 처음으로 정의한 REST는 개발자에게 비교적 높은 수준의 유연성과 자유를 제공합니다. 이러한 유연성은 REST API가 마이크로서비스 아키텍처에서 컴포넌트와 애플리케이션을 연결하는 일반적인 방법으로 부상하게 된 이유 중 하나에 불과합니다.
가장 기본적인 수준에서 API는 하나의 애플리케이션이나 서비스가 다른 애플리케이션이나 서비스 내의 리소스에 액세스할 수 있게 해주는 메커니즘입니다. 액세스를 수행하는 애플리케이션이나 서비스를 클라이언트라고 하고, 리소스가 포함된 애플리케이션이나 서비스를 서버라고 합니다.
SOAP 또는 XML-RPC와 같은 일부 API는 개발자에게 엄격한 프레임워크를 부과합니다. 그러나 REST API는 거의 모든 프로그래밍 언어를 사용하여 개발이 가능하며, 다양한 데이터 포맷을 지원할 수 있습니다. 유일한 요구사항은 다음의 6가지 REST 디자인 원칙(아키텍처 제한사항이라고도 함)에 부합해야 한다는 것입니다.
REST API는 HTTP 요청을 통해 통신함으로써 리소스 내에서 레코드(CRUD 라고도 함)의 작성, 읽기, 업데이트 및 삭제 등의 표준 데이터베이스 기능을 수행합니다. 예를 들어, REST API는 GET 요청을 사용하여 레코드를 검색하고, POST 요청을 사용하여 레코드를 작성하며, PUT 요청을 사용하여 레코드를 업데이트하고, DELETE 요청을 사용하여 레코드를 삭제합니다. 모든 HTTP 메소드는 API 호출에서 사용될 수 있습니다. 잘 디자인된 REST API는 HTTP 기능이 내장된 웹 브라우저에서 실행되는 웹 사이트와 유사합니다.
특정 순간 또는 타임스탬프의 리소스 상태를 리소스 표현이라고 합니다. 이러한 정보는 JSON(JavaScript Object Notation), HTML, XLT, Python, PHP 또는 일반 텍스트를 포함하여 실제로 거의 모든 형식으로 클라이언트에 전달될 수 있습니다. JSON은 사람과 기계가 모두 읽을 수 있고 프로그래밍 언어에 구애받지 않기 때문에 자주 사용됩니다.
요청 헤더와 매개변수 역시 메타데이터, 권한 부여, URI(Uniform Resource Identifier), 캐싱, 쿠키 등의 중요한 식별자 정보를 포함하므로 REST API 호출에서 중요합니다. 요청 헤더와 응답 헤더는 일반적인 HTTP 상태 코드와 함께 잘 디자인된 REST API 내에서 사용됩니다.
유연성이 REST API 디자인의 커다란 장점임에도 불구하고, 이러한 유연성 때문에 중단되거나 성능이 떨어지는 API를 손쉽게 디자인할 수도 있습니다. 이러한 이유로 전문 개발자는 REST API 스펙의 우수 사례를 공유합니다.
OAS(OpenAPI Specification)는 모든 개발자 또는 애플리케이션이 API를 발견하고 사용 가능한 엔드포인트, 각 엔드포인트에서 허용되는 작업, 작업 매개변수, 인증 방법, 기타 정보 등 API와 관련된 매개변수와 기능을 완벽하게 이해할 수 있는 방식으로 API를 기술하는 인터페이스를 설정합니다. 최신 버전인 OAS3(IBM 외부 링크)은 서로 다른 프로그래밍 언어로 API 클라이언트 및 서버 스텁을 생성하기 위한 OpenAPI 생성기 등의 실습용 툴과 함께 제공됩니다.
REST API 보안 역시 암호 보안을 위해 해싱 알고리즘을 사용하고 안전한 데이터 전송을 위해 HTTPS를 사용하는 등의 업계 우수 사례로 시작됩니다. OAuth 2.0(IBM 외부 링크) 등의 권한 부여 프레임워크는 써드파티 애플리케이션의 권한을 제한하는 데 도움이 됩니다. API는 HTTP 헤더 내의 타임스탬프를 사용하여 특정 시간 이후에 도착하는 요청을 거부할 수도 있습니다. 매개변수 검증과 JSON 웹 토큰은 승인된 클라이언트만 API에 액세스할 수 있도록 보장하는 또 다른 방법입니다.
IBM Cloud Pak® for Integration은 폐쇄 루프 API 자동화 기능을 적용하여 다양한 유형의 통합을 지원하는 하이브리드 통합 플랫폼입니다.
IBM API Connect®의 보안 API 관리 기능을 사용하여 여러 클라우드에서 API 라이프사이클을 관리하고, 사회화를 촉진하며, 전체 비즈니스 에코시스템에서 수익 창출 노력을 최적화합니다.
비즈니스 워크플로우에서 IT 운영에 이르기까지 IBM은 AI 기반 자동화로 귀사를 지원합니다.