API는 응용 프로그램(애플리케이션)에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공
즉, API는 리모컨과 점원처럼 애플리케이션과 운영체제 그리고 애플리케이션과 프로그래밍 언어가 제공하는 기능 사이의 '상호 작용'을 도와준다
웹은 기본적으로 요청(request)과 응답(response)으로 작동한다.
클라이언트쪽에서 요청을 하면 서버에서 응답을 함.
웹 API는 웹 애플리케이션 개발을 할때 클라이언트와 서버, 애플리케이션과 애플리케이션등 서로 요청과 응답을 주고 받기 위해서 정의한 API
서버와 데이터베이스안의 리소스에 접근할 수 있게 해준다.
API는 접근 권한이 인가된 사람에게만 서버와 데이터베이스에 접근할 수 있게 한다.
모든 요청과 응답을 표준화 한다.
애플의 아이폰을 쓰던 삼성의 갤럭시폰을 쓰던 상관없이 동일한 API를 사용하기 때문에 클라이언트의 요청과 서버의 응답을 하나의 API로 표준화 한다.
REST API(REpresentational State Transfer)는 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고, 해당 리소스에 대한 행위를 HTTP Method로 정의하는 방식을 말한다.
쉽게 말해서,
리소스(HTTP URI로 정의됨)를 어떻게 하겠다(HTTP Method + Payload)를 구조적으로 깔끔하게 표현하는 방법
리소스에 대한 행위는 HTTP Method(POST, GET, PUT, DELETE)로 표현해야 한다.
/(슬래시)는 계층 관계를 나타낼때 사용.
URI 마지막 문자에 /(슬래시)를 사용하지 않음.
URI에 _(underscore)는 사용하지 않도록 합니다. 또한 영어 대문자보다는 소문자를 쓴다.
그리고 가독성을 위해서 긴 단어는 잘 사용하지 않는다.
URI에 동사는 GET, POST와 같은 HTTP Method를 표현하기 때문이다.
동사가 아니라 명사를 사용한다.
URI에 파일의 확장자(예를들어 .json , .JPGE)를 포함 시키지 않는다.
RESTful API는 REST API 설계 가이드를 따라 API를 만드는것
REST API 설계 가이드에 따라 API를 만들어서 웹 서비스를 제공하면 해당 웹 서비스는 RESTful하다