REST API

예진·2022년 10월 6일
0

🔥 REST API

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

REST API를 디자인하는 방법
레오나르드 리차드슨(Leonard Richardson)은 REST API를 잘 적용하기 위한 4단계 모델을 만들었다.

🔥 REST 성숙도 모델

총 4단계(0~3단계)로 나누어져있지만,
3단계까지 지키기 어려워서 2단계까지만 적용해도 좋은 API 디자인이라고 볼 수 있다. ( = HTTP API )

REST 성숙도 모델 - 0단계

: REST API를 작성하기 위한 기본 단계 ( 단순히 HTTP 프로토콜을 사용하기만 해도 된다. )

REST 성숙도 모델 - 1단계

: 개별 리소스(Resource) 와의 통신 준수
=> 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야하며 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 한다.

  • 어떤 리소스를 변화시키는지, 어떤 응답이 제공되는지에 따라 각기 다른 엔드포인트를 사용하기 때문에 적절한 엔드포인트를 작성하는 것이 중요하다.

  • 엔드포인트 작성 시 리소스에 집중해 명사 형태의 단어로 작성해야 한다.
    ( 동사, HTTP 메서드, 어떤 행위에 대한 단어 사용 x )

  • 요청에 따른 응답으로 리소스를 전달할 때 사용한 리소스에 때한 정보와 리소스 사용에 대한 성공/실패 여부를 반환해야 한다.

REST 성숙도 모델 - 2단계

: CRUD(Create, Read, Update, Delete)에 맞게 적절한 HTTP 메서드 사용

  • HTTP 메서드 사용 규칙
    1) GET 메서드 같은 경우 서버의 데이터를 변화시키지 않는 요청에 사용해야 한다.
    2) POST 메서드는 요청마다 새로운 리소스 생성, PUT 메서드는 요청마다 같은 리소스 반환
    멱등(idempotent) : 매 요청마다 같은 리소스를 반환하는 특징 -> PUT, POST 구분해 사용
    3) PUT 메서드는 교체, PATCH 메서드는 수정의 용도로 사용한다.

REST 성숙도 모델 - 3단계

: HATEOAS(Hypertext As The Engine Of Application State) , 하이터미디어컨트롤을 적용한다.

  • 요청 : 2단계와 동일
  • 응답 : 리소스의 URI를 포함한 링크 요소를 삽입하여 작성
    => 응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는 것이 3단계의 핵심

🔥 Open API

: 공공데이터에 쉽게 접근할 수 있도록 정부는 Open API의 형태로 공공데이터 제공

  • API마다 정해진 이용 수칙이 있고, 제한사항(가격, 정보의 제한 등)이 있다.

🔥 API Key

: 서버의 문을 여는 열쇠 ( API를 이용하기 위해 필요 )

  • 로그인한 이용자에게 자원에 접근할 수 있는 권한을 API Key의 형태로 제공하고, 데이터를 요청할 때 API key를 같이 전달해야 원하는 응답을 받을 수 있다.
profile
😊

0개의 댓글