2022. 9. 5. 16:18ㆍSpring
# REST API란
REST를 기반으로 만들어진 API
# REST란
Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다. == 자원(resource)의 표현(representation)에 의한 상태 전달
1. HTTP URI(Uniform Resource Identifier)를 통해 자원을 명시한다.
2. HTTP Method(POST, GET, PUT, DELETE, PATCH..)을 사용한다.
3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.
# CRUD Operation이란
- Create : 생성(POST)
- Read : 조회(GET)
- Update : 수정(PUT)
- Delete : 삭제(DELETE)
- HEAD : header 정보 조회(HEAD)
# REST 구성요소
1. 자원(Resource) : HTTP URI
2. 자원에 대한 행위(Verb) : HTTP Method
3. 자원에 대한 행위의 내용(Representations) = 표현 : HTTP Message Pay Load
# REST 특징
1. Server-Client(서버-클라이언트 구조)
- 자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client
- 서로 간 의존성이 줄어든다.
2. Stateless(무상태)
- HTTP 프로토콜은 Stateless Protocol이므로 REST 역시 무상태성을 갖는다.
- Client의 context를 Server에 저장하지 않는다. 즉, 세션과 쿠키와 같은 context정보를 신경쓰지 않아도 되므로 구현 단순.
- Server는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다.
3. Cacheable(캐시 처리 가능)
- 웹 표준 HTTP 프로토콜을 그대로 사용하므로 기존의 인프라 그대로 활용 가능. 즉, 캐싱 기능을 적용할 수 있다.
4. Layered System(계층화)
- Client는 REST API Server만 호출한다.
- REST Server는 다중 계층으로 구성될 수 있다.
- PROXY, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있다.
5. Uniform Interfave(인터페이스 일관성)
- URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용 가능하다.
6. Code-On-Demand(optional)
- Server로부터 스크립트를 받아서 Client에서 실행한다.
REST Stateless : https://hoi5088.medium.com/http-stateless-feat-rest-api-af7995a59d59
# REST 장/ 단점
# 설계 및 RESTful
밑에 블로그에 잘 나와있다.
참고:
'Spring' 카테고리의 다른 글
@PostMapping + JSON (0) | 2022.09.19 |
---|---|
책 + 영상 강의를 보고 난 후 궁금했던 것들 정리 (0) | 2022.08.14 |
Spring - Optional (0) | 2022.06.03 |