REST API

형진·2022년 4월 28일
0

네트워크

목록 보기
8/10

REST API란?

  • REST API에서 REST는 “Representational State Transfer”의 약자로, 로이 필딩의 박사학위 논문에서 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로써 처음 소개되었다. REST API는 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다.
  • 웹 애플리케이션에서는 HTTP 메서드를 이용해 서버와 통신한다.
  • GET을 통해 웹 페이지나 데이터를 요청하고, POST로 새로운 글이나 데이터를 전송하거나 DELETE로 저장된 글이나 데이터를 삭제할 수 있다.
  • 이처럼 클라이언트와 서버가 HTTP 통신을 할 때는 어떤 요청을 보내고 받느냐에 따라 메서드의 사용이 달라진다

좋은 REST API를 디자인하는 방법

  • REST API를 작성할 때는 몇 가지 지켜야 할 규칙들이 있다.
  • 로이 필딩이 논문에서 제시한 REST 방법론을 보다 더 실용적으로 적용하기 위해 레오나르드 리차드슨은 REST API를 잘 적용하기 위한 4단계 모델을 만들었다.

리차드슨의 REST 성숙도 모델을 구조화하면 다음과 같다.

이미지 출처 - 코드스테이츠

REST 성숙도 모델 - 0단계

  • REST 성숙도 모델에 따르면, 0단계에서는 단순히 HTTP 프로토콜을 사용하기만 해도 된다.
  • 물론 이 경우, 해당 API를 REST API라고 할 수는 없으며, 0단계는 좋은 REST API를 작성하기 위한 기본 단계이다.
    • 예) /user

REST 성숙도 모델 - 1단계

  • 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야 한다는 것과 요청하고 받은 자원에 대한 정보를 응답으로 전달해야 한다는 것이 1단계에서 의미한다.
    • 예) /user/:id

REST 성숙도 모델 - 2단계

  • 2단계에서는 CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점을 둔다.
  • CRUD
    • Create : 생성(POST)
    • Read : 조회(GET)
    • Update : 수정(PUT)
    • Delete : 삭제(DELETE)
  • 예) Get /user/:id
  • 적절한 응답도 와야 한다
    • 1xx (정보): 요청을 받았으며 프로세스를 계속한다
    • 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다
    • 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
    • 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
    • 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다

REST 성숙도 모델 - 3단계

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

RESTful API

  • RESTful한 api 란 REST 기반으로 API가 구현되었다 라는 말과 같다
profile
느낀대로 적자

0개의 댓글

관련 채용 정보