REST API

ddimi·2022년 10월 6일
0

SEB_FE_41

목록 보기
7/14

REST API

  • REST : “Representational State Transfer”의 약자

클라이언트와 서버의 통신을 담당하는 API
-> api는 웹의 통신규약인 http를 이용
-> 웹 애플리케이션에서는 HTTP 메서드를 이용해 서버와 통신

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


REST 성숙도 모델

총 4단계(0~3단계)로 구성

REST 성숙도 모델 - 0단계
HTTP 프로토콜을 사용

REST 성숙도 모델 - 1단계
개별 리소스(Resource)와의 통신을 준수
= 웹에서 사용되는 모든 데이터나 자원(Resource)을 HTTP URI로 표현

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

REST 성숙도 모델 - 2단계
CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점

  • Create (생성) -> post
  • Read (읽기) -> get
  • Update (수정) -> put | patch
  • Delete (삭제) -> delete

HTTP 메서드를 사용할 때의 규칙

  • POST 메서드 : 요청마다 새로운 리소스를 생성
  • GET 메서드 : 서버의 데이터를 변화시키지 않는 요청에 사용
  • 수정에 사용되는 http 메소드
    • 전체 내용 변경 : put (교체)
    • 부분의 내용 변경 : patch (수정)

REST 성숙도 모델 - 3단계
HATEOAS(Hypertext As The Engine Of Application State)의 약어로 표현되는 하이퍼미디어 컨트롤 적용

  • 요청은 2단계와 동일하지만, 응답에는 리소스이 URI를 포함한 링크 요소를 삽입하여 작성
  • 링크요소는 응답을 받은 다음 할 수 있는 다양한 액션들을 위해 많은 하이퍼미디어 컨트롤을 포함

응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는 것이 3단계의 핵심 포인트!


Open API

  • 글자그대로 누구에게나 열려있는 API -> 무제한
  • API마다 정해진 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있음

API Key

  • API를 이용하기 위해 필요한 서버의 열쇠
  • API Key가 필요한 경우 : 로그인한 이용자에게 자원에 접근할 수 있는 권한API Key의 형태로 제공하고, 데이터를 요청할 때 API key를 같이 전달해야 원하는 응답을 받을 수 있음

0개의 댓글