REST API

Purple·2021년 10월 19일
0

TIL

목록 보기
35/73

1. REST API

  • REST : Representational State Transfer의 약자로 http의 장점을 최대한 활용할 수 있는 아키텍처이다. 웹에서 사용되는 데이터나 자원(resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식이다.
  • REST 성숙도 모델
    • 총 4단계로 0,1,2,3단계가 있다.
    • 엄밀하게 3단계까지 지키기 어렵기때문에 2단계까지만 적용해도 좋은 API 디자인이라고 할 수 있다.

1.1 REST 성숙도 모델 : 0단계

  • 단순히 HTTP 프로토콜을 사용하기만 해도 된다. 물론 이 경우, 해당 API를 REST API 라고 할수 없지만, 0단계는 좋은 REST API를 작성하기 위한 기본 단계이다.

1.2 REST 성숙도 모델 : 1단계

  • 1단계는 개별 리소스와의 통신을 준수해야한다고 한다.
  • 모든 자원은 개별 리소스에 맞는 엔드포인트 (Endpoint)를 사용해야 한다는 것과 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 한다는 것이 1단계에서 의미하는 바다.
  • 엔드포인트 작성 시에는 동사, HTTP메소드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성하는 것이 바람직한 방법이다.

1.3 REST 성숙도 모델 : 2단계

  • 2단계는 CRUD에 맞게 적절한 HTTP 메소드를 사용하는것에 중점을 둔다.
    • GET 메소드 같은 경우는 서버의 데이터를 변화시키지 않는 요청을 사용해야한다.
    • POST는 요청마다 새로운 리소스를 생성하고 PUT은 요청마다 같은 리소스를 반환해야한다. 이렇게 매요청마다 같은 리소스를 반환하는 특징을 ‘멱등’하다고 한다. 그렇기 때문에 멱등성을 가지는 메소드 PUT과 그렇지않는 POST는 구분하여 사용해야한다.
    • PUT과 PATCH도 구분하여 사용해야한다. PUT은 교체, PATCH는 수정의 용도로 사용한다.

1.4 REST 성숙도 모델 : 3단계

  • 마지막 단계는 HATEOAS(Hypertest As The Engine Of Application State)라는 약어로 표현되는 하이퍼미디어 컨트롤을 적용한다. 3단계의 요청은 2단계와 동일하지만, 응답에는 리소스의 URI를 포함한 링크요소를 삽입하여 작성한다는 것이 다르다.
profile
다시 보면, 더 많은 것들이 보인다.

0개의 댓글