
API(application programming interface, 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다.
클라이언트 - 서버 사이에서 클라이언트의 요청을 받아 서버에게 잘 전달 및 처리될 수 있도록 API가 처리해준다.
클라이언트(스마트폰) —- 요청 —→ 인터넷 —> API —> 서버(카카오톡 서버) ——- DB
- 어떠한 방식으로 정보를 요청해야 하는지, 그리고 그러한 요청을 보냈을 때 어떠한 형식으로 무슨 데이터를 전달받을 수 있는지에 대해 정리한 일종의 규격이라고 볼 수 있습니다.
예를 들어, 사용자가 "오늘의 날씨"를 알고 싶다고 했을 때,
즉, API는 사용자와 서버 사이의 중개자 역할을 하며, 요청을 주고받는 명확한 규격과 형식을 갖고 있습니다.
이 규격이 잘 정의되어 있어야, 서로 다른 프로그램 간에도 충돌 없이 소통이 가능합니다.
| 원칙 | 설명 |
|---|---|
| Client-Server 구조 | 클라이언트와 서버를 분리 |
| Stateless | 서버는 요청마다 상태를 저장하지 않음 |
| Cacheable | 응답은 캐시 가능해야 함 |
| 계층 구조 | 클라이언트는 중간 서버가 있는지 몰라도 됨 |
| 일관된 인터페이스 (URI) | 요청 인터페이스가 일관되어야 함 |

REST 원칙을 지키며 만든 API → RESTful API
즉, HTTP 요청을 통해 자원에 접근하는 인터페이스 설계 방식
/posts)REST API는 웹 자원(Resource)에 대한 작업을 HTTP 메서드로 표현합니다.
| HTTP 메서드 | 의미 | 설명 |
|---|---|---|
| GET | 조회 | 리소스를 가져옵니다 (읽기) |
| POST | 생성 | 리소스를 새로 만듭니다 |
| PUT | 전체 수정 | 리소스를 통째로 바꿉니다 |
| PATCH | 부분 수정 | 리소스의 일부분만 수정합니다 |
| DELETE | 삭제 | 리소스를 제거합니다 |
| 요청 방식 | URL | 설명 |
|---|---|---|
| GET | /posts | 게시글 목록 조회 |
| GET | /posts/1 | ID가 1인 게시글 조회 |
| POST | /posts | 새 게시글 작성 |
| PUT | /posts/1 | ID 1번 게시글 전체 수정 |
| PATCH | /posts/1 | ID 1번 게시글 일부 수정 |
| DELETE | /posts/1 | ID 1번 게시글 삭제 |
즉, HTTP 메서드 + URL 조합이 REST API의 핵심입니다.
Express는 REST API를 내장하고 있는 것이 아니라,
REST API 방식으로 서버를 구현할 수 있도록 도와주는 프레임워크
따라서, 개발자가 REST API 방식에 맞춰 작성해야 RESTful한 API가 됨