api는 프론트엔드 계의 꽃🌷이라 불리우며, 서버와 클라이언트가 서로 소통을 할때 중요한 역할을 담당하기 때문에 면접에서 중요하게 다루는 주제이기 때문에 한번 정리해보고자 한다.
-api란? 응용프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어에서 제공하는 기능을 제어할 수 있게 해주는 인터페이스 이다.
그럼 여기서 인터페이스란? 인터페이스는 사람과 사람, 사람과 사물 또는 기기를 연결하는 것이다.
다시말해보면 api는 어플리케이션 간에 지정된 형식으로 요청과 응답을 할 수 있도록 연결하는 것이다. 예를 들면 카셰어링 앱이나 맛집예약 앱에서 사용하는 실시간 지도 또한 api를 활용한 예시로 네이버나 구글 등 기업에서 제공하는 api를 내서비스에 적용해서 지도를 연결하는 원리라고 볼 수 있다.
인터넷 식별자 URI(uniform resource identifier)와 HTTP를 기반으로 하고, 브라우저간 호환성이 좋은 JSON형식을 주로 이용한다.
REST의 기장 중요한 특성은 각 요청이 어떤 정보나 동작을 위한 것인지 그 모습 자체로 추론이 가능하다. REST는 문서. 그림, 데이터. 등의 자원을 이름으로 구분해서 해당 자원에 대한 상태, 정보를 주고받는 것을 의미하며 또한 HTTP Method를 활용하여 해당 자원에 대한 CRUD를 적용하는 것을 의미한다.
REST api에는 다양한 HTTP Method 중에서 5가지(GET, POST, PUT, DELETE, PATCH)를 사용한다.
즉> REST api는 HTTP 요청을 할 때 어떤 URI에 어떤 Method를 사용할지에 대한 개발자들 사이에 널이 사용되는 약속이라고 보면 될 것이다.
추가로 DOM APIs, Location APIs, ContextAPIs 등 라이브러리나 프레임워크에서 제공하는 기능 또한 API라고 부르기도 하는 점도 알아두면 좋을 듯 하다.