API (Application Programming Interface)

네트워크에서 API는 프로그램 간에 상호작용하기 위한 매개체
API를 비유하여 설명하면 아래와 같다.
- Client : 손님
- API : 홀 직원
- Server : 주방 직원
"손님"이 "홀 직원"에게 "음식"을 "요청"하고, "홀 직원"은 "주방 직원"에게 해당 "음식"의 조리를 "요청"하게 된다.
이후 "주방 직원"은 "홀 직원"에게 "음식"을 "건내주고(응답)", "홀 직원"은 "손님"에게 "음식"을 "서빙(응답)"한다.
위와 같은 상황이, 네트워크에서 사용자(Client), API, Server 간에 요청 및 응답이 이루어지는 것이다.
REST API (Representational State Transfer)
- 웹의 장점을 최대한 활용하는 API
- 자원을 이름으로 구분해 자원의 상태를 주고받는 API방식
쉽게 말하자면, REST API는 명확하고 이해하게 쉽게 URL를 설계하는 방식이다.
REST API의 특징
서버 / 클라이언트 구조, 무상태, 캐시처리가능, 계층화, 인터페이스 일관성과 같은 특징이 있음
REST API 장점
- URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있음
- 상태가 없다는 특징이 있어서 클라이언트와 서버의 역할이 명확하게 분리
- HTTP 표준을 사용하는 모든 플랫폼에서 사용할 수 있음
REST API 단점
- HTTP 메서드, 즉 GET / POST와 같은 방식의 개수에 제한이 있음
- 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없음
REST API 사용법
URL에는 동사를 쓰지 말고, 자원을 표시해야 한다
자원 : 가져오는 데이터
- ex) 학생 중에 id가 1인 학생의 정보를 가져오는 URL
- /students/1 /get-students?student_id=1
동사는 HTTP 메서드로
- HTTP 메서드는 서버에 요청을 하는 방법을 나눈 것
- 주로 사용하는 HTTP 메서드 (각각 CRUD의 역할을 담당한다.)
- POST (CREATE)
- GET (READ)
- PUT (UPDATE)
- DELETE (DELETE)
RESTful API
REST하게 디자인한 API를 RESTful API라고 부르기도 한다.
즉, REST API 설계 방식을 따른 API를 RESTful API이다.
결론적으로,
REST API는 주소와 메서드만 보고 요청의 내용을 파악할 수 있다는 강력한 장점이 있어 많은 개발자들이 사용한다고 한다.
'CS > Server' 카테고리의 다른 글
| 썸원 애플리케이션에 관하여 (2) | 2024.04.27 |
|---|---|
| [Server] 토큰 기반 인증과 리프레시 토큰 (0) | 2023.09.05 |