HTTP / 네트워크 (2) REST API

young·2022년 6월 9일
0

5/25~6/22 Section 2 TIL

목록 보기
17/27

S2U8 W7D5 금요일이다!
모르고 썼던 인터넷이 이렇게나 복잡한 거였다니
이번 주말에는 책을 통해 공부해야겠다
자주 봐서 친해지자..⭐️


✅ TIL

  • REST API란?
  • REST 성숙도 모델
  • Open API / API key

💡 REST API

REST: Representational State Transfer
API: Application Programming Interface :클라이언트와 서버가 요청과 응답을 보다 잘 주고받기 위한 인터페이스

REST API
1. 웹의 데이터나 자원을 HTTP URI로 표현하고 2. HTTP프로토콜을 통해 요청과 응답을 정의하는 방식

REST API 디자인

REST API를 적절히 디자인해야 좋은 HTTP Message가 된다.
로이 필딩의 REST 방법론을 바탕으로 레오나르드 리차드슨이 REST API 성숙도 모델을 만들었다.
어느 하나만 충족하는 게 아닌, 0단계부터 차근차근 적용해야 REST API라고 할 수 있다.



0️⃣ REST API 성숙도 모델 0단계

HTTP를 사용한다.



1️⃣ REST API 성숙도 모델 1단계

개별 리소스와의 통신을 준수한다.

개별 리소스에 맞는 엔드포인트(URI)를 사용하며, 요청에 따른 응답을 알맞게 전달한다.
응답에는 사용한 리소스의 정보 && 리소스 사용에 대한 성공/실패 여부를 반환한다.

  • Endpoint : 리소스를 잘 나타내는 명사 형태의 단어로 작성한다.
    동사, HTTP Method 사용 지양



2️⃣ REST API 성숙도 모델 2단계

CRUD에 따른 적절한 HTTP Method를 사용한다.

HTTP MethodCRUD
POSTCreate
GETRead
PUTUpdate
PATCHUpdate
DELETEDelete
...
  • GET : body가 없으므로 query parameter을 사용하여 리소스를 전달한다.
  • PUT: payload로 데이터를 교체한다.
  • PATCH: payload로 데이터를 수정한다.

---> PUT은 멱등하고 PATCH는 그렇지 않기 때문에 잘 구분해서 사용할 것

✔️ 멱등성(idempotent)

동일한 요청을 1번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때 멱등하다고 한다. -mdn

GET, HEAD, PUT, DELETE = 멱등성을 가지는 HTTP Method. 여러 번 호출해도 같은 응답이 나온다.
POST, PATCH= 멱등성 없음. 여러 번 호출하면 여러 번 생성한다.



---일반적으로 2단계까지 충족해도 REST API라고 한다.---

but 로이 필딩은 2단계까지는 HTTP API이고 3단계까지 충족해야 진정한 REST API라고 주장한다.



3️⃣ REST API 성숙도 모델 3단계

하이퍼미디어 컨트롤(HATEOAS 원칙)을 적용한다.

  • HATEOAS: Hypertext As The Engine Of Application State

응답에 리소스의 URI를 포함한 링크(links) 요소를 삽입하여 작성해야 한다.
이때 links 요소에 많은 하이퍼미디어 컨트롤을 포함한다.

응답에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 하는 게 핵심 포인트




💡Open API / API key

Open API

누구나 사용할 수 있는 API
정해진 이용 수칙과 제한 사항이 있을 수 있다.

API key

API를 이용하기 위한 key
즉, 서버를 이용할 수 있는 열쇠

profile
즐겁게 공부하고 꾸준히 기록하는 나의 프론트엔드 공부일지

0개의 댓글