1. AWS APIGATEWAY - HongSunggwan/STUDY GitHub Wiki
1. API 란
API의 개념
api(application programming interface)는 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
api는 당사자들 간 계약을 나타내는 도큐멘테이션을 갖춘 계약으로 비유되기도 합니다.
한쪽 당사자가 특정한 방식으로 구성된 원격 요청을 보내면 다른 쪽 당사자의 소프트웨어가 이에 응답하는 방식이기 때문입니다.
API의 종류
SOAP(Simple Object Access Protocol)
SOAP는 아키텍쳐로 정의된 REST와는 달리 자체가 프로토콜임
SOAP는 보안이나 메세지 전송 등에 있어서 REST보다 더 많은 표준들이 존재하기 때문에 REST보다 복잡하다.
REST보다 많은 표준들로 인하여 과도한 오버헤드가 발생하지만 보안, 트랜잭션, ACID(원자성, 일관성, 고립성, 지속성) 등을 준수해야 하는 기업의 입장에서는 더 적합한 방식이 될 수 있음
SOAP는 웹서비스 시나리오보다는 기업용 애플리케이션에 더 이상적으로 볼 수 있음
REST에서는 표준화된 메시징 시스템이 갖춰져 있지 않으며, 통신 장애가 있을 경우 재시도를 통해서만 조치할 수 있습니다. 반면 SOAP 표준에는 성공/반복 실행 로직이 규정되어 있기 때문에, SOAP API를 통해서 통신을 할 때 처음부터 끝까지 신뢰성을 제공합니다.
SOAP 표준에는 ACID 준수에 관한 사항이 있습니다. ACID를 준수하기 때문에 데이터의 변형을 줄여주고, 데이터베이스와의 상호작용에 대해서 사전에 정확하게 정하기 때문에 데이터의 무결성을 지켜주지요. ACID는 데이터 일관성을 위한 다른 방식들보다도 더 보수적이기 때문에, 금융 정보 등의 민감한 데이터를 주고받을 때 일반적으로 많이 사용됩니다.
REST(Representational State Transfer)
REST는 네트워크를 통하여 컴퓨터들 간의 통신을 지원하는 아키텍쳐 스타일
REST 아키텍쳐의 제약 조건을 준수하는 API를 RESTful API라고 한다.
RESTful API는 클라이언트 <-> 서버 모델로 구축됨을 의미
RESTful API는 URL과 HTTP 프로토콜을 기반으로 하며 데이터 포멧으로는 JSON을 주로 사용한다.
RESTful API 구조는 REST 구조에서의 리소스는 그들 의 고유한 URI를 가지게 된다.
RESTful API는 HTTP의 기본 메소드인 GET/PUT/POST/DELETE만으로 접근할 수 있다.