REST api: 두 판 사이의 차이
기술노트
(새 문서: == REST API 개념 정리 == === 1. REST API 정의 === REST API(Representational State Transfer API)는 웹에서 자원을 CRUD(Create, Read, Update, Delete) 방식으로 조작할 수 있도록 설계된 아키텍처 스타일의 API이다. HTTP 프로토콜을 기반으로 하며, RESTful API라고도 불린다. === 2. REST API의 주요 원칙 === * '''클라이언트-서버 구조(Client-Server Architecture)''' 클라이언트와 서버는 독립적으로 동작하...) |
편집 요약 없음 |
||
3번째 줄: | 3번째 줄: | ||
=== 1. REST API 정의 === | === 1. REST API 정의 === | ||
REST API(Representational State Transfer API)는 웹에서 자원을 CRUD(Create, Read, Update, Delete) 방식으로 조작할 수 있도록 설계된 아키텍처 스타일의 API이다. HTTP 프로토콜을 기반으로 하며, RESTful API라고도 불린다. | REST API(Representational State Transfer API)는 웹에서 자원을 CRUD(Create, Read, Update, Delete) 방식으로 조작할 수 있도록 설계된 아키텍처 스타일의 API이다. HTTP 프로토콜을 기반으로 하며, RESTful API라고도 불린다. | ||
=== 유투브 영상 === | |||
[https://www.youtube.com/watch?v=_OyV-N_DK14 API 에 대한 설명 영상] | |||
<youtube width="100%" height="400">_OyV-N_DK14</youtube> | |||
=== 2. REST API의 주요 원칙 === | === 2. REST API의 주요 원칙 === |
2025년 2월 19일 (수) 13:50 기준 최신판
REST API 개념 정리
1. REST API 정의
REST API(Representational State Transfer API)는 웹에서 자원을 CRUD(Create, Read, Update, Delete) 방식으로 조작할 수 있도록 설계된 아키텍처 스타일의 API이다. HTTP 프로토콜을 기반으로 하며, RESTful API라고도 불린다.
유투브 영상
2. REST API의 주요 원칙
- 클라이언트-서버 구조(Client-Server Architecture)
클라이언트와 서버는 독립적으로 동작하며, 클라이언트는 요청을 보내고 서버는 응답을 제공한다.
- 무상태성(Stateless)
각 요청은 독립적으로 처리되며, 서버는 클라이언트의 이전 요청 상태를 기억하지 않는다.
- 캐시 가능(Cacheable)
응답 데이터는 캐시할 수 있어 성능을 최적화할 수 있다.
- 계층적 시스템(Layered System)
API는 여러 계층으로 구성될 수 있으며, 클라이언트는 최종 서버인지 중간 서버인지 알 필요가 없다.
- 일관된 인터페이스(Uniform Interface)
URI를 통해 자원을 명확하게 식별하고, HTTP 메서드(GET, POST, PUT, DELETE)를 이용해 자원을 조작한다.
3. REST API의 HTTP 메서드
메서드 | 설명 |
---|---|
GET | 자원 조회 |
POST | 새로운 자원 생성 |
PUT | 기존 자원 수정 |
DELETE | 자원 삭제 |
4. REST API의 예시
1) 사용자 정보를 가져오는 API
GET /users/1 HTTP/1.1 Host: example.com
응답
{ "id": 1, "name": "홍길동", "email": "hong@example.com" }
2) 새로운 사용자 등록
POST /users HTTP/1.1 Host: example.com Content-Type: application/json { "name": "홍길동", "email": "hong@example.com" }
응답
{ "id": 2, "name": "홍길동", "email": "hong@example.com" }