
REST API란?
REST는 Representational State Transfer의 약자로, HTTP 방식으로 동작하는 아키텍처이다.
HTTP를 기반으로 다음과 같이 작동하는 방식을 REST API라고 한다.
- 자원은 URI로 표기
- CRUD와 같은 행위는 HTTP Method를 이용
REST의 특징
- HTTP를 사용하므로 HTTP를 이용할 수 있는 어느 곳에서나 사용할 수 있다.
- 서버에서 클라이언트의 요청을 저장하지 않기 때문에 무상태성을 유지할 수 있다.
- URI로 자원을, HTTP Method로 행위를 표현하므로 이해하기 쉽다.
- 웹에서 사용하는 HTTP 캐싱 기능을 그대로 사용할 수 있다.
성숙도 모델 (Maturity Model)
레오나르도 리처드슨(Leonard Richardson)이 고안한 모델로, 얼마나 RESTful하게 구현하였는지에 따라 단계를 나눈 모델이다. 0단계부터 3단계가 있으며, 내용은 다음과 같다.
0단계
기본적인 REST 방식을 따르지 않는 단계로, 그냥 단순히 웹 서비스에서 특정 기능만을 제공하기 위함만을 고려한 방식이라고 생각하면 된다.
ex)
http://example.com/save-user
1단계
자원을 URI로 표현한 상태이다.
ex)
http://example.com/user
http://example.com/post/3
2단계
1단계 + GET, POST, PUT, DELETE와 같은 HTTP Method를 통해 리소드 조작 방법을 표현한다.
일반적으로 REST에 대해서 말할 때의 가장 중요한 특징이 2단계까지의 기능이다.
form 태그에서는 GET과 POST밖에 지원하지 않으므로, 다른 메서드를 사용하고 싶으면 Ajax를 이용하거나 Axios와 같은 기능을 사용해야 한다.
사용하는 기술에 따라 form 태그 내부의 hidden input 태그에 PUT, DELETE 등의 메서드를 지정해서 요청을 보내도 해당 메서드대로 동작할 수도 있다.
ex)
GET http://example.com/user/16
PUT http://example.com/user/16
3단계
2단계 + API를 이용한 응답이 다음에 어떤 방식으로 동작할 수 있는지 알려주는 기능을 포함한다.
클라이언트는 해당 응답을 통해 서버가 다음에 어떤 기능을 제공하는지 미리 알 수 있다.
HATEOAS
https://en.wikipedia.org/wiki/HATEOAS
HATEOAS - Wikipedia
From Wikipedia, the free encyclopedia Distributed computing constraint Hypermedia as the engine of application state (HATEOAS) is a constraint of the REST application architecture that distinguishes it from other network application architectures. With HAT
en.wikipedia.org
'공부 > 네트워크' 카테고리의 다른 글
| [네트워크] TCP / IP (0) | 2024.04.02 |
|---|---|
| [네트워크] OSI 7계층 (0) | 2024.01.12 |
| [네트워크] Web Server와 Web Application Server(WAS) (0) | 2023.09.23 |