본문 바로가기

Development/Network & Web

[WEB] REST API 개념 정리

REST (Representational State Transfer)

: HTTP 프로토콜을 통해 API를 설계하기 위한 이키텍처 스타일

 

REST의 구성과 특징

1. REST의 구성

◾ 자원 (Rescource)

◾ 행위 (Verb)

◾ 표현 (Representations)

 

2. REST의 특징

특징 설명
Server-Client (서버 클라이언트) 구조 리소스 있는 쪽 - 서버
리소스를 요청하는 쪽 - 클라이언트
Stateless (무상태) 세션이나 쿠키 등의 상태를 따로 저장하여 관리하지 않고, API 요청에 대한 처리만 수행
HTTP 프로토콜은 기본적으로 '무상태'이다. 무상태는 클라이언트의 상태(State)를 서버에 저장하지 않는 것이다. 따라서 이전의 클라이언트의 요청이 다음 요청에 연관되지 않고, 서버는 요청들을 별개로 인식하고 처리한다.
Cacheable (캐시 가능) HTTP의 캐싱 기능을 적용 가능
Layered System (계층형 구조) 보안, 로드 밸런싱, 암호화, Proxy, API Gateway 등 추가적 계층을 구축하여 구조상 유연함을 높임
Code-On-Demand 서버로부터 스크립트를 받아서 클라이언트에서 실행
Uniform Interface (인터페이스 일관성) URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 이키텍쳐

 

 

REST API 설계

REST는 자원(Resource)의 사용을 위해 URI를 사용한다. 자원에 대한 행위(Verb)HTTP Method로 표현한다.

HTTP Method

HTTP 요청을 통해 통신하여 데이터 생성, 읽기, 업데이트 및 삭제 기능 동작 => CRUD

종류 용도
POST 리소스 생성
GET 리소스 조회
PATCH 리소스의 일부 속성을 수정
PUT 리소스의 속성 덮어쓰기 / 일부 속성 삭제
DELETE 리소스 삭제

 

User Resource 예시

URI HTTP Method 의미
/users GET 사용자 목록 조회
/users POST 사용자 정보 추가
/users/1 GET ID가 1인 사용자의 상세정보 조회
/users/1 DELETE ID가 1인 사용자 정보 삭제

 

 

 

< 참고 >

https://appmaster.io/ko/blog/rest-apiran-mueosimyeo-dareun-yuhyeonggwa-eoddeohge-dareungayo

https://code-lab1.tistory.com/194