RESTful API에 대한 정의를 내리고 공부해보려다가, API를 와닿게 잘 표현한 글이 있어서 참고하여 설명할 예정이다.
먼저 RESTful API를 단계적으로 이해하기 위해
API -> REST API -> RESTful API 순으로 알아보자.
API는 어플리케이션에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.
정의만으로는 이해가 안될 수도 있으니, 예시를 통해 이해해보도록 하자.
나는 집에 있는 TV를 보기위해 다음과 같은 프로세스를 거친다.
이 프로세스에 관여하는 세 가지 Things는 바로
나 <-> 리모컨 <-> TV 이다.
이 때, 리모컨의 역할이 바로 API라고 할 수 있다.
이처럼 API는 어플리케이션과 운영체제, 그리고 어플리케이션과 프로그래밍 언어가 제공하는 기능 사이의 '상호 작용'을 도와주는 것이다.
웹은 기본적으로 요청(request)과 응답(response)으로 작동한다.
웹 API는 웹 어플리케이션 개발을 할 때 클라이언트와 서버간의 요청과 응답을 주고 받기 위해 정의한 API이다. API의 형태는 다양하게 정의되지만, ICIP & 캡스톤디자인 발표회의 응급알림시스템의 웹에서는 함수를 API로 정의하여 사용하였다.
REST API는 웹에서 사용되는 여러 리소스를 HTTP URI로 표현하고, 해당 리소스에 대한 행위를 HTTP Method로 정의하는 방식이다.
RESTful API란 상기 REST API의 Guideline을 따라 API를 만든 것이다.