본문 바로가기

언어(JS,TS)/그룹스터디

그룹스터디 [HTTP : REST API란?]

REST API에서 REST는 “Representational State Transfer”의 약자로,

REST API는 정보들이 주고받아지는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식으로써

웹 서비스를 만들기 위해 필요한 제약 조건 또는 규칙들을 정의한 아키텍쳐 디자인을 말합니다. 

REST API에서 URI는 정보의 자원을 표현합니다. 

 

자원에 대한 상태 정의는 HTTP method(GET, POST, PUT, DELETE…)로 표현합니다.

좋은 REST API를 디자인하기 위해 REST 성숙도 모델을 따를 수 있습니다.

 

REST 성숙도 모델은 0-3단계로 이루어져 있습니다.

 

0단계

 - 단순히 HTTP 프로토콜을 사용

 

1단계

 - 개별 리소스와의 통신을 준수

이는 모든 자원은 개별 리소스에 맞는 엔드포인트를 사용

각 리소스에 요청하고 받은 자원에 대한 정보를 응답으로 전달해야됨

엔드포인트 작성시 리소스에 집중해 정확한 명사 형태의 단어로 작성

응답의 경우 사용한 리소스의 정보, 리소스 사용에 대한 성공과 실패 여부 반환

 

2단계

- CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점

- REST 성숙도 모델의 2단계까지 적용을 하면 대체적으로 잘 작성된 API라고 여김

 

3단계

 - HATEOAS(Hypertext As The Engine Of Application State)라는 약어로 표현되는 하이퍼미디어 컨트롤을 적용

 - 2단계 + 응답에는 리소스의 URI를 포함한 링크 요소를 삽입하여 작성

 

 

API를 작성할 때, 

물론 REST라는 개념을 만든 로이 필딩은 3단계(HATEOAS)까지 만족하지 못한다면

REST API가 아니기 때문에 HTTP API라고 불러야 한다고 주장합니다.

하지만 대부분의 웹 API에서 REST 성숙도 모델의 3단계까지 적용한 경우는 극히 드뭅니다.

따라서 3단계까지 무조건적으로 모두 적용해야 한다는 것은 아닙니다.