API
네트워크에서 프로그램 간에 상호작용하기 위한 매개체를 말한다.
식당으로 예를 들면, 주방에 요리를 주문하지 않고 점원에게 요리를 주문한다. 그리고 점원은 주방에 가서 해당 요리를 요청한다. 그리고 요리가 완성되면 점원이 손님에게 요리를 전달한다.

여기서 손님은 클라이언트, 주방에서 일하는 요리사는 서버라고 생각하면 된다. 그리고 중간에 점원을 API라고 생각하면 된다.
우리가 웹 사이트 주소를 입력해서 '네이버 메인 화면'을 보여달라고 요청한다. 그러면 API는 이 요청을 서버에 준다. 그럼 서버는 API의 요청을 처리해 결과물을 만들고 다시 API에게 전달한다. 그러면 API는 결과물을 브라우저에게 보내주고 우리는 네이버 메인 화면을 볼 수 있게되는 것이다.
REST API
웹의 장점을 최대한 활용하는 API 이다. REST는 'Representational State Transfer'를 줄인 표현인데, 이는 자원을 이름으로 구분해 자원의 상태를 주고받는 API 방식이다.
쉽게 말하면 명확하고 이해하기 쉬운 API를 말한다. REST API는 기술이 아닌 URL의 설계 방식을 말한다.
특징
- 서버/클라이언트 구조
- 무상태
- 캐시 처리 가능
- 계층화
- 인터페이스 일관성
장단점
장점
- URL만 보고도 무슨 행동을 하는 API인지 알 수 있다.
- 상태가 없다는 특징 덕분에 클라이언트와 서버의 역할이 명확하게 분리된다.
- HTTP 표준을 사용하는 모든 플랫폼에서 사용할 수 있다.
단점
- HTTP 메서드의 개수에 제한이 있다.
- 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없다.
사용법 (규칙)
1. URL에 동사를 사용하지 않고 자원을 표시
- 예시) /studnets/1 O
/get-student?student_id=1 X 동사를 사용함
2. 동사는 HTTP 메서드 사용
| 설명 | 적합한 URL |
| id가 1인 글 조회하는 API | GET/articles/1 |
| 블로그 글을 추가하는 API | POST/articles |
| 블로그 글을 수정하는 API | PUT/articles/1 |
| 블로그 글을 삭제하는 API | DELETE/articles/1 |
RESTful API
REST API의 설계 규칙을 잘 지켜서 디자인 된 API
'Spring Boot' 카테고리의 다른 글
| private final vs autowired 차이점 (0) | 2025.02.14 |
|---|---|
| RequestParam vs PathValue 차이 (0) | 2025.02.13 |
| [Spring Boot] HTTP 상태 코드 (HTTP Status Code) (2) | 2024.12.19 |
| [Spring Boot] application.yml과 application.properties 차이점 (1) | 2024.12.08 |
| [Spring Boot] IoC와 DI (1) | 2024.12.07 |