소프트웨어 프로그램이 다른 소프트웨어 프로그램으로 데이터를 전송할 수 있도록 하는 인터페이스이다.
엔드포인트 : API가 제공하는 특정 리소스의 URL로 클라이언트가 요청을 보내는 주소이다.
HTTP 메서드 : API 요청의 유형을 정의한다. 일반적으로 사용하는 메서드는 종류은 다음과 같다.
GET: 데이터를 조회한다.
POST: 새로운 데이터를 생성한다.
PUT: 기존 데이터를 수정한다.
DELETE: 데이터를 삭제한다.
요청 헤더 : 클라이언트가 서버에 보내는 메타데이터로 인증 정보나 콘텐츠 타입 등을 포함할 수 있다.
요청 본문 : POST나 PUT 요청 시 서버에 전송할 데이터를 포함한다. 일반적으로 JSON 형식으로 보낸다.
응답 : 서버가 클라이언트의 요청에 대해 반환하는 데이터이다. 응답에는 상태 코드, 헤더, 본문이 포함된다.
요청 : 사용자가 API를 통해 특정 작업을 수행 할 때 클라이언트는 API 서버에 요청을 보낸다.
요청은 일반적으로 HTTP 프로토콜을 사용하고 요청 URL, 메서드, 헤더, 본문 등을 포함된다.
처리 : API 서버는 클라이언트의 요청을 수신하고 요청에 포함된 정보를 바탕으로 해당 작업을 처리한다. 이 과정에서 데이터베이스와 연동하거나 다른 서비스와 통신할 수 있다.
응답 : 요청이 성공적으로 처리되면 API 서버는 클라이언트에게 응답을 반환합니다. 이 응답은 요청한 데이터나 작업의 결과를 포함한다. 응답에는 상태 코드(예: 200, 404, 500 등)도 포함되어 요청의 성공 여부를 나타낸다.
클라이언트에서 처리 : 클라이언트는 서버로부터 받은 응답을 처리하여 사용자에게 필요한 정보를 표시하거나 후속 작업을 수행한다.
날씨 정보를 제공하는 API를 가져오는 과정이라 할때
먼저 1. 요청
클라이언트는 특정 도시의 날씨 정보를 요청하는 GET 요청을 API 엔드포인트에 보낸다.
//예시코드, 기상청api를 적기
GET https://api.weather.com/v3/weather?city=Seoul
처리: API 서버는 요청을 수신하고 데이터베이스에서 확인하고 싶은 날씨 정보를 조회합니다.
응답: 서버는 날씨 정보가 담긴 JSON 객체를 클라이언트에 반환하다.
//확인하고 싶은 도시의 날씨가 나옴(예로 서울 선택시)
{
"city": "Seoul",
"temperature": "15°C",
"condition": "Clear"
}
이와 같은 순서을 통해 API는 서로 다른 시스템 간의 원활한 데이터 교환과 기능 통합을 지원하는걸 알 수 있다.
데이터(또는 데이터베이스) API : 애플리케이션과 데이터베이스 관리 시스템을 연결하는데 사용한다.
운영 체제(로컬) API : 앱이 운영 체제 서비스 및 리소스를 사용하는 방법을 정의하는데 사용한다.
원격 API : 다양한 디바이스의 애플리케이션이 상호 작용하는 방식을 정의하는데 사용한다.
웹 API : HTTP 프로토콜을 사용하여 인터넷을 통해 데이터 및 기능을 전송할 수 있도록 하는데 사용한다.
Private API는 내부 API로 기업이나 연구 단체 등에서 자체 제품과 운영 개선을 위해 단체 내부에서만 사용한다. 따라서 제삼자에게 노출되지 않는다.
Public API는 개방형 API로 모두에게 공개된다. Public API 중에서도 접속하는 대상에 대한 제약이 없는 경우를 OpenAPI라 한다.
Partner API는 특정 비즈니스 파트너 간의 데이터 공유로 동의하는 특정인들만 사용할 수 있다.
SOAP, RPC, REST API, GraphQL 등 api들이 있지만
현재는 사실상 표준화가 되었다 해도 과언이 아닐 정도로 가장 많이 쓰이고 있는 REST* API를 중점으로 쓴다.
REST는 REpresentational State Transfer를 뜻한다.