API(Application Programming Interface)는 컴퓨터나 컴퓨터 프로그램들이 서로 상호작용하는 것을 도와주는 매개체로 볼 수 있다.
REST(Representational State Transfer)는 네트워크를 통해서 컴퓨터들끼리 통신할 수 있게 해주는 아키텍처 스타일이다.
REST는 해당 API를 사용하는 각각의 애플리케이션들이 모두 동일한 경로를 통해서 접속해야 한다.
REST는 서버에 URI를 이용해서 접근한다.
REST는 웹에 최적화 돼 있고 데이터 포맷이 JSON이기 때문에 브라우저들 간 호환성이 좋다.
REST는 HTTP와 JSON을 사용하기 때문에 페이로드의 무게를 가볍게 할 수 있다.
REST는 양단간(end-to-end) 보안성을 위해서 SSL을 지원하며 HTTPS 프로토콜을 이용할 수 있다.
REST는 서버와 느슨한 형태로 연결, REST 방식의 API에서는 클라이언트에서 해당 API가 필요하지 않다.
SOAP(Simple Object Access Protocol)는 프로토콜이며, 보안이나 메시지 전송 등에 있어서 REST보다 더 많은 표준들이 정해져있기 때문에 조금 더 복잡합니다. 따라서 은행용 모바일 앱처럼 보안 수준이 높아야 하거나, 신뢰할 수 있는 메시징 앱, 또는 ACID를 준수해야 하는 경우라면 SOAP 방식이 더욱 선호됩니다.
SOAP는 서비스 인터페이스를 이용해서 서버에 접근한다.
SOAP는 데이터 포맷으로 XML만 사용한다.
SOAP는 표준에 성공/반복 실행 로직 규정, SOAP API를 통해서 통신을 할 때 처음부터 끝까지 신뢰성을 제공한다.
SOAP는 ACID를 준수하기 때문에 데이터의 변형을 줄여준다.
SOAP는 WS-Security를 지원한다.
SOAP는 서버와 긴밀하게 연결, SOAP 방식의 API에서는 상호작용을 시작할 때조차도 클라이언트에서 API에 관한 모든 정보들을 필요로 한다.