만약 뉴스 페이지에서 일기예보를 보여주는 페이지를 만들고 싶다면 개발자가 날씨를 직접 측정해야 할까?
그냥 날씨 데이터를 제공해주는 서비스를 가져와 사용할 수 있다.
이때 API는 날씨 데이터와 뉴스 페이지를 연결해주는 역할을 한다.
0. 예시
이해를 돕기 위해 예시부터 가져와 보았다
- 일기예보 : 만약 뉴스 페이지에서 일기예보를 보여주는 페이지를 만들고 싶다면 기자들이 날씨를 직접 측정하는 것이 아니라, api를 통해 날씨 데이터를 제공해주는 서버(사이트)에서 날씨 데이터를 가져와 사용할 수 있다.
- 지도기능 활용 : 맛집 예약 어플에서는 지도 기능을 제공하고 있다. 이때 캐치테이블 개발자들이 지도를 직접 만든 것이 아니라, Google Map 또는 Naver Maps와 같은 open api를 활용하면 위치 데이터를 가져와 사용할 수 있다.
- 운송장 번호 조회 : 네이버에서 운송장 조회를 할 때 네이버에서 택배 운송 현황을 일일히 확인하는 것이 아니다. 택배사 별로 운송 현황을 보여주는 데이터를 가져와 우리에게 보여주는 것이다.
* 결국 api는 기능과 응용프로그램을 연결해주는 통로 역할을 하는 것이다. api를 통해 날씨 데이터 또는 위치 데이터를 가져와 달라는 요청을 할 수 있는 것이다. 응용 프로그램간 상호작용하는 방식이라고도 할 수 있다.
1. API란?
- Application Programming Interface, 응용 프로그램 사이를 연결하는 인터페이스
- 응용 프로그램간의 상호작용 방식
- 어떤 응용프로그램에 다른 소프트웨어 기능을 제공한다
- 따라서, 개발하는 응용프로그램의 확장을 쉽게 해주고, 응용 프래로그램의 기능을 다채롭게 해준다
2. REST API란?
- REST(Representation State Transfer) : 웹에 존재하는 자원에 고유 URL을 붙여 사용하는 것
- REST API : 자원을 필요로 하는 요청자의 정보나 데이터를 굳이 저장하지 않는다.(=무상태) 그저 요청에 대해 자원으로 응답한다.
- RESTful API라고도 표현한다
3. RESTful API 요청 종류
- RETSful API는 HTTP method를 사용한다.
HTTP method | 설명 |
GET | 필요한 자원을 조회 |
HEAD | GET방식과 비슷하나, 정보만 확인 |
POST | 자원을 자신의 응용 프로그램에 추가 |
PUT | 응용프로그램에서 활용하는 자원을 변경 |
PATCH | 존재하는 자원을 부분적으로 변경 |
DELETE | 자원을 더이상 필요로 하지 않을 때 삭제함 (사용자의 적절한 인증 필요) |