응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어에서 제공하는 기능을 제어할 수 있게 해주는 인터페이스
쉽게 말해 서비스나 프로그램 간에 미리 정해진 기능을 실행할 수 있도록 하는 규약
애플리케이션 간에 지정된 형식으로 요청과 응답을 할 수 있도록 연결하는 것
📌 애플리케이션
API의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타낸다.
(ex) 맛집지도: 네이버맵이나 구글맵 API 활용
다른 프로그램이 제공하는 기능을 제어할 수 있게 해주는 인터페이스
📌 인터페이스
사람-사람, 사람-사물을 연결하는 것
(ex) 폰 내부가 어떻게 동작하는지 몰라고 인터페이스로 버튼으로 음량조절 가능
다른 프로그램과 연결 해주는 다리 역할을 한다.
API를 조합해 원하는 프로그램을 만들 수도 있다.
참고로, DOM API 등 라이브러리나 프레임워크에서 제공하는 기능을 API라고 부르기도 한다.
REST Representational State Transfer
HTTP 통신을 REST 설계 규칙을 잘 지켜서 개발한 API를 Restful한 API라고 한다.
각 요청이 어떤 정보나 동작을 위한 것인지 그 모습 자체만으로도 추론이 가능하다.
문서, 그림, 데이터 등의 자원을 이름으로 구분해서 해당 자원에 대한 상태, 정보를 주고받는 것 ➕ HTTP Method를 활용해서 해당 자원에 대한 CRUD를 적용하는 것 (특히 GET, POST, PUT, DELETE, PATCH)
즉, HTTP 요청을 할 때 어떤 URI에 어떤 method를 사용할지에 대한 개발자들 사이에서 널리 사용되어지는 약속
📌 URI, URL 차이점
URL은 Uniform Resource Locator로 인터넷 상 자원의 위치를 의미한다. 즉 어떤 파일의 위치이다. 반면에 URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성으로 URL보다 포괄적인 의미를 뜻한다.
HTTP 메소드는 클라이언트가 서버에게 사용자 요청의 목적을 알리는 수단
CRUD 관점에서 설명: Create(생성), Read(읽기), Update(갱신), Delete(삭제)
POST : 서버나 특정 리소스에 개체를 제출할 때 사용. Create나 Update, Delete등을 할 때 사용하기도 한다. [Create]
GET : 특정 리소스의 참조를 요청. URL에 어느 리소스를 참조 요청하는지 드러나게 된다.[Read]
PUT: 해당 리소스를 수정합니다. 전체 자원을 업데이트 하는데에 쓰인다. [Update]
DELETE : 삭제 할 때 사용. [Delete]
PATCH: 부분을 수정하는데에 사용.
👉 참고: REST API 제대로 알고 사용하기