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
'Development > Network & Web' 카테고리의 다른 글
[Network] FTP (File Transfer Protocol) & SFTP (File Transfer Protocol) (0) | 2023.03.06 |
---|---|
[Network] 프록시(proxy)란? 포워드 프록시(forward proxy), 리버스 프록시(reverse proxy) (0) | 2023.01.29 |
[WEB] 웹서버 vs WAS (0) | 2023.01.29 |