API(Application Programming Interface)는 서로 다른 소프트웨어나 애플리케이션 간을 연결해 주는 매개체 이자 약속이라고 할 수 있습니다.
만약 스마트폰의 날씨 앱을 이용해 내일의 날씨를 조회한다면, 앱은 날씨 정보를 제공하는 서버에게 정보를 요청해야 하죠. 이때, 앱과 날씨 서버 간의 통신을 도와주는 것이 API입니다.
여기 위 예시에서 API는 규칙을 만들어 '정보를 어떻게 어디로 요청할 것인가 / 응답은 어떻게 어디로 할 것인가' 정의를 내려야 합니다.
2.'API를 작성' 한다는 말의 뜻은?
- 웹 애플리케이션(프론트엔드)에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다는 뜻
- 우리가 작성할 API에서 원하는 데이터를 받아 데이터 베이스에 저장하고, 저장되어 있는 데이터를 읽어서 애플리케이션에 데이터를 제공하는 행위를 통해 사용자가 원하는 목적을 이룰 수 있게 해주는 것
3.REST API / RESTful API의 뜻
REST(Representational State Tranfer)는 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위해 네트워크 상에서 자원을 쉽고 명확하게 조작할 수 있게 도와주는 소프트웨어 아키텍처의 한 형식이다. 풀어 말하자면, 사람이 봐도 이해할 수 있도록 자원(Resource)을 정의하고 이 '자원'을 중심으로 표현을 구성하는 원칙을 제공하는 게 REST API의 역할
즉 REST API는 HTTP를 통해 웹 서비스 자원에 접근하는 방식을 "REST 아키택쳐" 규칙에 따라 구현된 API라 보면 된다.
쉽게 말하자면, 위 사진처럼, 클라이언트가 프로토콜들 통해 어떤 요청 방식을 사용해서 어떤 URL(Resource)를 서버에 요청할지 정하는 것. 그러면 정리된 방식으로 데이터를 가져오는걸 볼 수 있다.
4.REST API의 구성요소
4.1.자원(Resource) - URL
소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있습니다. 영화관 사이트라면 영화에 대한 정보를 관리하고 새롭게 업로드하고 지우며 최신화할 수 있어야 합니다.
예를 들어 위 사진 처럼 영화에 관련된 내용은 /movies에서 관리할 수 있는 것이죠.
4.2. 행위 - HTTP method
method의 종류를 통해 해당 자원에 대한 행위를 표현할 수 있습니다. 그중 대표적인 것이 GET과 POST 죠.
4.3.표현
해당 자원을 어떻게 표현할지에 대한 방법입니다. 보통 JSON, XML 같은 형식을 이용해서 자원을 표현합니다.