출처 : Postman
소프트웨어나 애플리케이션 간의 상호작용을 가능하게 하는 도구와 규약의 집합
API는 서로 다른 소프트웨어 시스템들이 데이터를 교환하고 기능을 공유할 수 있도록 함으로써, 프로그램이나 애플리케이션의 확장성과 연동성을 향상시킨다.
날씨 및 미세먼지 정도를 측정해 오늘 입을 옷차림과 미세먼지 농도를 알려주는 앱을 개발한다는 가정을 할 때, 매번 날씨 사이트에 들어가 그 때 그 때 정보를 가져다가 알려주는 방법은 매우 비효율적이다.
이 경우, 기상청에서 제공하는 공공데이터 API를 활용해 우리는 날씨 데이터를 가져올 수 있고, 그 중에서도 필요로 하는 데이터들을 취사 선택하여 활용할 수 있다.
이것이 API가 가지는 데이터 교환 및 기능 공유, 애플리케이션의 확장성과 연동성의 특징을 의미한다.
사용자(클라이언트)는 API를 통해 서버에 요청을 하게 되고, 서버는 필요에 따라 데이터베이스와 상호작용하여 필요 데이터를 취해 다시 클라이언트에 응답을 하게 된다. 이 응답은 주로 JSON이나 XML의 형태로 전송된다.
이러한 API 요청은 주로 HTTP 요청 방식으로 이루어지게 된다.
출처 : techtarget.com
HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜
*프로토콜 : 컴퓨터 내부, 혹은 컴퓨터 간 데이터 교환방식을 정의하는 규칙 체계
HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트 - 서버 프로토콜이기도 하다.
즉 웹 상에서 이루어지는 대부분의 요청 - 응답은 이 HTTP를 통해 이루어진다.
HTTP는 다음과 같은 몇 가지 특징을 갖고 있다.