REST 란

REST(Representational State Transfer)란 네트워크 아키텍처 스타일이다.

여기서 '네트워크 아키텍처 스타일'란 네트워크 자원을 정의하고 처리하는 방법 전반을 일컫는다.

 

즉, REST는 HTTP를 잘 활용하기 위한 원칙이라고 할 수 있고
REST API는 이 원칙을 준수해 만든 API이다.

 

그렇다면 HTTP를 잘 활용하기 위한 원칙은 무엇인가?

Representational State Transfer
자원의 표현으로 상태를 전달하는 것

 

URI로 자원을 표현하는 데에 집중하고, HTTP METHOD로 자원의 상태(행위)를 정의하는 것이

REST한 API를 설계하는 중심 규칙이다.

 

RESTful한 설계의 중심 규칙

  • URI로 자원(리소스)을 표현해야 한다.
  • 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현된다.

 

예시를 통해 살펴보도록 하자.

 GET /members/delete/1

위와 같은 방식은 REST를 제대로 적용하지 않은 URI이다. URI는 자원을 표현하는데 중점을 두어야 한다.

delete와 같은 행위에 대한 표현은 HTTP Method를 통해 표현한다.

위의 잘못된 URI를 HTTP Method를 통해 수정해 보면 아래와 같이 수정할 수 있다.

DELETE /members/1

 

회원정보 조회는 GET, 회원 추가를 표현하고자 할 때는 POST METHOD를 통해 표현한다.

 

회원정보를 조회하는 URI

GET /members/show/1     (x)
GET /members/1          (o)

 

회원을 추가할 때

GET /members/insert/2   (x) 
POST /members/2         (o)

 

 

추가 지식)

사실 요즘 사용하는 REST API 라는 용어는 HTTP API와 거의 같은 의미라고 한다.

본래 REST API는 HTTP 프로토콜을 따르면서 아래의 4가지 가이드 원칙을 지켜야 한다.

 

  1. 자원의 식별
  2. 메세지를 통한 리소스 조작
  3. 자기서술적 메세지
  4. 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어(HATEOAS)

 

이러한 제약 조건들을 완벽하게 지키면서 개발하는 것을 RESTful API라고 하는데

실무에서 이런 방법으로 개발하는 것은 현실적으로 어렵고 개발비용 대비 효과가 있는 것도 아니다.

(4번째 원칙이 특히나 구현하기 어렵다.)

그런데 이미 많은 사람들이 이 조건들을 지키지 않아도 REST API라고 하기 때문에 HTTP API와 같은 의미로 사용하고 있다.

하지만 엄밀하게는 위 제약 조건들을 모두 지켜야 REST API라고 말할 수 있다.

좀 더 알고싶다면 해당 유튜브 영상을 한 번 보는것도 괜찮을것 같다.

 

참고 자료)

https://bentist.tistory.com/37

 

API, HTTP API, REST API 차이

기상청 날씨정보 API, 증권 API, 지도 API 등등 막연하게 API란 단어를 들어왔다. API를 가져다 써, API로 개발한다 등등 개념은 제대로 모르며 사용 해왔기에 이번엔 API에 대해 개념적으로 정리해보고

bentist.tistory.com

 

'네트워크' 카테고리의 다른 글

[네트워크] JWT 란  (2) 2023.10.04
x-www-form-urlencoded와 json  (0) 2023.09.21
[네트워크] HTTP 요청 데이터  (0) 2023.07.25
웹 서버(WS)와 WAS 및 분리 이유  (0) 2023.04.03
[네트워크] API 란?  (0) 2023.03.27

+ Recent posts