application programming interface 의 약자로 애플리케이션끼리 서로 통신할 수 있도록 하는 인터페이스를 말한다. 간단히 말해, 소프트웨어의 여러 부분이나 시스템 간에 정보를 교환하거나 서비스를 요청하고 응답하는 데 사용되는 규칙이다.
Web API란 클라이언트 API와 서버 API로 나누어져있다.
브라우저에서 제공하는 API 로 웹 브라우저에 내장되어 있으며, 브라우저 및 주변 컴퓨터 환경에서 데이터를 제공하거나 복잡한 작업을 수행 할 수 있다. 예를 들어, XMLHttpRequest API 는 브라우저에서 HTTP 통신을 위한 Javascript 구성을 제공합니다.
MDN Web API : https://developer.mozilla.org/ko/docs/Web/API
서버와 클라이언트의 HTTP 통신을 위하여 서버에서 측에서 제공하는 API 서비스로 예를 들어 다음 주소로 HTTP 요청을 보내면 해당 도메인의 서버 API 가 요청에 대한 응답을 해준다.
https://jsonplaceholder.typicode.com/todos/1
TV와 리모콘을 생각해보자.
리모콘의 버튼을 누르면 TV는 누른 버튼에 해당하는 일을 처리한다. 리모콘은 TV에서 제공하는 API인 것이다. 우리는 서버가 제공한 API를 따라 요청하고, 그에 해당하는 응답을 받는것으로 서버 API를 이용할 수 있다.
웹 서비스를 구축하기 위한 아키텍처 스타일 중 하나로, HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정하고, 분산 시스템에서 자원을 표현하고 상호작용하는 방법을 정의합니다.
애플리케이션끼리 상호작용 할 수 있도록 하는 인터페이스를 말한다. 간단히 말해, 소프트웨어의 여러 부분이나 시스템 간에 정보를 교환하거나 서비스를 요청하고 응답하는 데 사용되는 규칙이다.
REST API란 REST 아키텍처를 기반으로 서비스 API를 구현한 것을 의미한다.
REST 아키텍처의 원칙을 성실히 지킨 서비스 API를 RESTful API라고 한다.
클라이언트/서버 구조에서 클라이언트와 서버 간의 통신을 설계하는 데 사용되는 기본적인 원칙을 정의해놓은 것으로, 자원(resource), 행위(verb), 표현(representations)의 3가지 요소로 구성되어있다.
구성요소 | 내용 | 표현 방법 |
---|---|---|
자원 (Resource) | 자원 | URI ( 엔드 포인트 ) |
행위 | 자원에 대한 행위 | HTTP 요청 메서드 |
표현 | 자원에 대한 행위의 구체적 내용 | 페이로드 |
REST 아키텍처에서 가장 중요한 두 가지 원칙은 바로 URI는 리소스를 표현하는데 집중하고, 행위는 HTTP 요청 메서드를 통해 정의하는 것이다.
REST 아키텍처에서 자원은 URI로 표현한다.
//good
/todos/id
/user/id
//bad
/getTodos/getId
/getUser/getId
REST 아키텍처에서 자원에 대한 행위를 표현할 때에는 HTTP 요청 메서드를 사용하여 CRUD를 구현한다
HTTP 메서드 | 종류 | 목적 | 페이로드 |
---|---|---|---|
GET | index/retrieve | 모든/특정 리소스 조회 | X |
POST | create | 리소스 생성 | O |
PUT | replace | 리소스 전체 교체 | O |
PATCH | modify | 리소스 일부 수정 | O |
DELETE | delete | 모든/특정 리소스 삭제 | X |
//good
GET /user/id
POST /user/id
DELETE /user/id
PATCH /user/id
//bad
GET /getUser/getId
POST /postUser/postId
DELETE /deleteUser/deleteId
PATCH /updateUser/updateId
이제 우리는 프론트엔드 개발을 할 때 REST 한 URI 구조를 생각하고, REST 한 HTTP 요청을 보낼 수 있게 되었습니다. 👏🏻👏🏻👏🏻