API (Application Programming Interface)
두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘
(두 애플리케이션 사이에서 데이터를 전송할 수 있도록 하는 규칙 집합)
여기서 애플리케이션이란, 고유한 기능을 지는 모든 소프트웨어를 의미한다.
두 애플리케이션이 요청과 응답을 사용하여 서로 통신
API 예시) 기상청의 일일 기상 데이터와 스마트폰의 날씨 애플리케이션
웹에서의 API
클라이언트와 서버 사이의 규칙 집합
클라이언트에서 요청을 보내면 서버에서 요청을 받아 그에 맞는 리소스 응답을 제공함
SOAP API
단순 객체 접근 프로토콜을 사용
과거에 많이 사용
RPC API
서버에서 프로시저를 완료하면 출력을 클라이언트로 다시 전송
Wensocket API
JSON 객체를 사용하여 데이터를 전달
클라이언트와 서버의 양방향 통신을 지원
서버가 연결된 클라이언트에 콜백 메시지를 전송할 수 있어서 REST API보다 효율적
REST API
오늘날 웹에서 가장 흔한 API
클라이언트가 서버에 요청하면 서버가 이 클라이언트의 입력을 사용하여 프로시저 시작하고 출력을 다시 클라이언트에 반환
REST API (REpresentational State Transfer)
REST(Representational State Transfer)? 자원을 이름 등으로 구분해서 해당 자원에 대한 여러 정보를 주고 받는 것
즉, REST API는 자원을 이름으로 구분해서 표현하고, 자원들을 주고 받는 시스템이라고 정의할 수 있다.
이는 네트워크를 통해 자원을 CRUD 하기 위한 소프트웨어 인터페이스를 제공하는 웹서비스 아키텍처 스타일이다.
이는 프론트엔드와 백엔드가 데이터를 주고 받기 위한 대표적인 방법이라고 볼 수 있다.
구성
- 자원(리소스): URI를 통해 정보의 자원을 표현, 정보에 접근하기 위함
- 행위(verb): http method(GET, POST, PUT, DELETE)를 사용하여 자원에 대한 CRUD를 결정
GET /post/1
위의 예시에서 리소스가 담긴 URI는 /post/1이 되고, http method는 데이터를 읽어오는 GET이 되는 것이다.
자원은 아래와 같은 JSON 데이터로 표현하게 된다.
{
'key' : 'value',
'title' : 'C',
}
'BackEnd' 카테고리의 다른 글
DBMS(Database Management System), ERD(Entity Relationship Diagram), SQL(Structured Query Language) (0) | 2024.04.30 |
---|---|
데이터베이스(DB), RDB, 쿼리란 무엇일까 (0) | 2024.04.29 |
웹(Web) (1) | 2024.04.26 |