REST API

전예훈·2023년 3월 29일
0

REST API 란...?

REST API는 웹에서 사용되는 데이터 자원을 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청 응답을 정의 하는 방식입니다.

REST API를 디자인 하는 방법이 존재하는데
작성할때 몇가지 지켜야하는 규칙들이 있습니다.

REST 성숙도 모델은 총 4단계로 나누어 지는데 2단계 까지만 적용해도 좋은 API디자인이라고 볼수 있고 이런경우를 HTTP API 라고 부르기도 합니다.


REST 성숙도 모델 -0 단계

0단계에서는 단순히 HTTP 프로토콜을 사용하기만 해도 됩니다.

해당 API를 REST API라고는 할 수 없는 상태를 뜻합니다.


REST 성숙도 모델 -1 단계

1단계에서는 개별 리소스와의 통신을 준수 해야합니다.

모든 자원은 개별 리소스에 맞는 엔드 포인트를 사용하고 요청하고 받는 자원에 대한 정보를 응답으로 전달하는 것이 1단계의 핵심 포인트입니다.

여기서 엔드포인트란?
-> 리소스에 집중해 명사 형태의 단어로 작성하는것
동사 , HTTP 메서드


REST 성숙도 모델 -2 단계

CRUD 에 맞게 적절한 HTTP 사용이 중점입니다.

앞선 0~1 단계에서는 CRUD와 상관없이 POST 매서드를 사용 했다면

2단계에서는 HTTP 메서드를 사용할때 규칙을 준수해야합니다.

  • GET 메서드 같은 경우는 서버의 데이터를 변화시키지 않는 요청에 사용해야 합니다.

  • POST 메서드는 요청마다 새로운 리소스를 생성하고 PUT 메서드는 요청마다 같은 리소스를 반환합니다. 이렇게 매 요청마다 같은 리소스를 반환하는 특징을 멱등(idempotent)하다고 합니다. 그렇기 때문에 멱등성을 가지는 메서드 PUT과 그렇지 않은 메서드POST는 구분하여 사용해야 합니다.

  • PUT 메서드와 PATCH 메서드도 구분하여 사용해야 합니다. PUT은 교체, PATCH는 수정의 용도로 사용합니다.

  • PATCH 메서드는 멱등성을 갖는 PUT/멱등성을 갖지 않는 POST를 구분하고 교체용도의 PUT/수정용동의 PATCH를 구분합니다.


REST 성숙도 모델 -3 단계

마지막 단계로 HATEOAS 라는 약어로 표현되는 하이퍼 미디어 컨트롤을 적용합니다.

하이퍼 미디어 컨트롤이란?

응단 내에 링크를 넣을수 있도록해서 새로운 기능에 접근 할 수 있도록 하는것입니다.

요청은 2단계와 동일하다고 생각하면 되고
응답은 리소스의 URI를 포함한 링크 요소를 삽인하여 작성합니다.
(다양한 액션들을 위해 많은 하이퍼미디어 컨트롤을 포함하고 있습니다.)


OPEN API 란?

문자 그대로 누구에게나 열려 있는 API 로 대부분의 이용자들이 사용이 가능하나
무제한으로 이용할 수 있다는 의미는 아닙니다.

API마다 정해진 이용 수칙이 존재하고 그 수칙에 따라 제한사항(가격, 정보의 제한) 이 있을 수 가 있습니다.


API Key

API를 이용하기 위해 필요한 Key

서버의 문을 여는 열쇠로
서버를 운용하는 비용이 발생하기 때문에 서버 입장에서는 조건없이 익명의 클라이언트에게 데이터를 제공할 의무는 없습니다.

가끔 API key가 필요하지 않은 경우도 있기도 하는데

만약 API Key가 필요한 경우 로그인한 이용자에게 리소스에 접근할 수 있는 권한을 API Key의 형태로 제공되어 지고 있습니다.

데이터를 요청할 때, API key를 같이 전달해야 원하는 응답을 받을 수 있습니다.

profile
더욱더 QA스럽게!

0개의 댓글