Computer Science/BackEnd

Backend 기초 #3 | API, Rest API란? (Application programming interface)

토마토. 2022. 8. 5. 13:29

API Application Programming Interface

  • API란?

API는 두 소프트웨어가 통신할 수 있게 해주는 일종의 매커니즘이다. 

API는 데이터를 어떤 방식으로 요청할 수 있는지(요청), 어떤 데이터를 제공받을 수 있는지(응답) 등을 정한다. 

예를 들면, 기상청 소프트웨어와  휴대폰의 날씨 앱을 예시로 들 수 있다. 

휴대폰 날씨 앱에서 기상청 소프트웨어가 가지고 있는 기상 데이터를 기상청 API를 통해 받아오는 식이다. 

 

API 아키텍처는 주로 클라이언트와 서버로 설명된다. 

클라이언트는 휴대폰 날씨 앱과 같이 데이터를 받아오기 위해 요청을 보내는 측을 말하고, 

서버는 기상청 소프트웨어처럼 요청 받은 내용을 처리하는 측을 의미한다. 

 

  • REST API

REST API는 웹에서 가장 많이 사용되는 API이다. 

REST는 Representational State Transfer의 약자다. 

Rest API는 Client와 Server가 네트워크 상에서 통신하는 방식을 정의한다. 

 

Rest API는 자원을 이름으로 나타내어 자원의 상태를 주고 받는 것을 의미한다. 

이때, 자원을 나타내는 이름은 HTTP URI(Uniform Resource Identifier)이며

모든 자원(이미지, 텍스트, 데이터베이스 속 내용 등)은 URI를 가지고 있다. 

HTTP Method(Get Post Put Delete)를 통해 CRUD operation을 구현할 수 있다. 

Create는 Post, Read는 Get, Update는 Put, Delete는 Delete에 대응된다. 

 

REST API는 3가지 주요한 특징을 가지고 있다. 

 

첫째는 Uniform Interface이다. 

REST API는 한정적인 방식으로 데이터를 표현하고, API에 접근한다.

REST API는 데이터를 URI(Uniform Data Interface)로 표현하며, HTTP Method로 요청을 전달한다. 

 

두번째는 Stateless이다. 

무상태는 서버가 클라이언트 데이터를 저장하지 않는다는 의미이다. 

서버는 클라이언트의 상태 정보를 몰라도 요청받은 작업을 수행할 수 있다. 

 

세번째 특성은 Client server 구조이다. 

REST API에서는 클라이언트와 서버가 명확히 구분된다. 

서버는 API를 제공하며, 클라이언트는 Context를 관리한다. 

 

 

참고

API란 무엇인가요? - API 초보자를 위한 가이드 - AWS (amazon.com)