Rest API에 관하여

젬마·2022년 10월 6일
0

codestates

목록 보기
7/18

REST API는 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다.

Rest API 0단계

  • REST 성숙도 모델에 따르면, 0단계에서는 단순히 HTTP 프로토콜을 사용하기만 해도 된다. 물론 이를 REST API라고 할 수는 없다. 0단계는 REST API를 작성하기 위한 기본 단계일 뿐이다.

Rest API 1단계

  • 1단계에서는 개별 리소스(Resource)와의 통신을 준수해야 한다.
  • REST API는 웹에서 사용되는 모든 데이터나 자원(Resource)을 HTTP URI로 표현한다. 때문에 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야 하며, 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 한다.
  • 엔드포인트 작성 시에는 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양하고, 리소스에 집중해 명사 형태의 단어로 작성해야 한다.

Rest API 2단계

  • REST 성숙도 모델 2단계에서는 CRUD(Create, Read, Update, Delete)에 맞는 적절한 HTTP 메서드를 사용하고자 한다. 모든 상황에 POST 메서드를 사용했던 0•1단계와는 달리 2단계에서는 예약 슬롯 (정보) 확인 요청에 GET, 예약에 POST 메서드를 사용하여 요청하는 것을 확인할 수 있다.
  • 이 경우 응답은 새롭게 생성된 리소스를 보내주기 때문에, 응답 코드는 201 Created 로 명확하게 작성해야 하며, 관련 리소스를 클라이언트가 Location 헤더에 작성된 URI를 통해 확인할 수 있도록 하면 완벽하게 REST 성숙도 모델의 2단계를 충족한 것이다.
  • 대체로 Rest API 2단계까지 적용되었다면 그것은 잘 작성된 API라고 할 수 있다.

Rest API 3단계

  • 마지막 3단계는 HATEOAS(Hypertext As The Engine Of Application State)라는 약어로 표현되는 하이퍼미디어 컨트롤을 적용한다. 3단계의 요청은 2단계와 동일하지만, 응답에는 리소스의 URI를 포함한 링크 요소를 삽입하여 작성해야 한다.
  • 응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는 것이 3단계의 핵심이다.

레퍼런스
https://martinfowler.com/articles/richardsonMaturityModel.html
https://dev.to/ragrag/rest-api-maturity-towards-the-glory-of-rest-5cm3

profile
취준생은 프론트엔드의 꿈을 꾸는가

0개의 댓글