REST API

이성민·2023년 5월 25일
0

REST(Representational State Transfer)
웹(http)의 장점을 최대한 활용할 수 있는 아키텍처.

REST API

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

  • HTTP 프로토콜을 기반으로 요청과 응답에 따라 리소스를 주고받기 위해서는 알아보기 쉽고 잘 작성된 메뉴판이 필요

REST API를 디자인하는 방법

REST API를 작성할 때는 지켜야 할 규칙들이 있다 => 4단계 성숙도 모델(0~3단계)

  • 하지만 엄밀하게 3단계까지 지키는건 어렵기 때문에 2단계까지만 적용해도 좋은 API 디자인이라고 볼 수 있다. => HTTP API
  • REST 성숙도 모델 - 0단계

    • 0단계는 REST API를 작성하기 위한 기본 단계다. 단순히 HTTP 프로토콜을 사용하기만 해도 된다. 하지만 이 경우의 API를 REST API라고 하진않는다.
  • REST 성숙도 모델 - 1단계

    • 1단계에서는 개별 리소스(Resource)와의 통신을 준수해야 한다.
    • 모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야 하며 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 한다. => 어떤 리소스를 변화시키는지, 어떤 응답이 제공되는지에 따라 각기 다른 엔드포인트를 사용하기 때문에, 적절한 엔드포인트를 작성하는 것이 중요!
    • 엔드포인트 작성 시 동사, HTTP 메서드, 혹은 어떤 행위에 대한 단어 사용은 지양 => 명사 형태의 단어로 작성하는 것이 좋음.
      요청에 따른 응답으로 리소스를 전달 => 사용한 리소스에 대한 정보, 성공/실패 여부를 반환
  • REST 성숙도 모델 - 2단계

    • 2단계에서는 CRUD(Create, Read, Update, Delete)에 맞게 HTTP메서드를 사용해야 함.
    • 주의사항
      -GET 메서드 = 서버의 데이터를 변화시키지 않는 요청에 사용
      -POST메서드 = 매 요청모다 새로운 리소스를 반환하는데, 매 요청마다 같은 리소스를 반환하는 PUT과 구분해서 사용.
      -PUT은 교체, PATCH는 수정의 용도로 사용.

Open API

누구에게나 열려있는 API.
무제한으로 이용? x => API마다 정해진 이용 수칙이 있고, 그 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있음.
날씨 제공 API

API Key

API를 이용하기 위해서는 API Key가 필요.(API key는 서버의 문을 여는 열쇠)
서버를 운용하는 데에 비용이 발생 => 서버 입장에서 아무런 조건 없이 익명의 클라이언트에게 데이터를 제공할 의무 x.(API key가 필요하지 않은 경우도 있음.)

  • API Key가 필요한 경우
    이용자에게 자원에 접근할 수 있는 권한을 API Key의 형태로 제공
    데이터를 요청할 때 API key를 같이 전달 => 원하는 응답

이번 개념의 경우 쉬웠던거 같지만 내일 하는 실습을 해봐야 제대로 알거같다.

profile
도전자

0개의 댓글

관련 채용 정보