{22년}코드스테이츠 FE - 블로깅_API

SANGHYUN KIM·2022년 8월 5일
0

PRE_먼저 알아야할 단어

A. Interface & Protocol

사람이 소통하듯이 컴퓨터는 컴퓨터끼리 소통을 함.

이 중에 소프트웨어끼리 통신을 하는 분야로 좁혀봄

사람은 말 또는 글이라는 매게체로 정보를 주고 받음 ⬅️➡️ 이와 같이 소프트웨어끼리 가지고 있는 정보를 교환하는 그 매게체를 Interface라고 함

글에도 형식이 있어서 형식에 따라서 적는데 ⬅️➡️Interface를 통하여 이야기하는 소프트웨어들도 규칙있게 이야기 해야 하는데 이것을 protocol이라고 함

💡 정리: interface라는 매개체를 통해서 서로의 정보를 합의된 protocol로 주고 받는다 ↔ 내가 가지고 있는 정보를 고객에게 메일(interface)을 통해서 보내야 하니 기본 메일 형식(protocol)으로 작성해서 보내야지.

B. URI

💡 URL(Uniform Resource Locator): 네트워크 상에서 웹 페이지, 이미지, 동영상 들의 파일의 위치 정보

C. CRUD method

Create Read Update Delete의 줄임말로 데이터를 다루는 행동들의 큰 범위 4가지

  • 지워줘, 새로 만들어줘, 업데이트 해줘, 해당 정보를 불러와줘 등등…..
CRUD요청의 뜻method
CREATE만들어줘POST
READ불러와줘GET
UPDATE업데이트해줘PUT/PATCH
DELETE삭제해줘DELETE

MAIN_이제 본문….

1. 그럼 REST API란?

REST? Representation State Transfer ( 표시된 상태를 전달)

💡 쉬운 설명: 웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식

  • 예) 내가 가지고 싶은 데이터가 허준 의사 8월 20일 자 예약기록이면 GET /doctors/허준/slots?date=2022-08-10 HTP/1.1 로 작성 → (인라인 코드의 뜻은 아래 REST 2단계에서 또 나옴)

HTTP API들의 거의 표준이라 할 수 있는 규칙

  • 여기서 잠깐, HTTP API는? → 프로토콜을 HTTP 통신 규격을 사용하는 API라고 생각

    💡 내가 가지고 있는 정보를 고객에게 메일(interface)을 통해서 보내야 하니 비즈니스 형식(HTTP protocol)로 작성해서 보내야지.

그러면 어떤 것이 REST API라고 할 수 있는 건가? === RESTful API라고 할 수 있는 것은?
답: 다음 4단계(0~3단계) 만족 시 REST API라고 부를 수 있음, 마지막 단계(3단계)까지는 아니어도 2단계까지만 해도 충분히 좋음

1-1. REST 0단계 - HTTP 사용

단순히 HTTP 프로토콜을 이용한 통신, 그러나 이 자체를 API라고 하지 않음
POST /appointment HTP/1.1 와 그 뒤에 딸려 오는 것으로 예약 가능한 시간과 예약일정을 만들었다

1-2. REST 1단계 - 개별 리소스와 통신 준수

개별 리소스(resource)에 맞는 엔드포인트(Endpoint)를 사용해야하며 요청하고 받는 자원에 대한 정보를 응답으로 전달
POST /doctor/허준 HTP/1.1로 허준 의사라는 개별 리소에 초점을 맞춰서 불러오고 있음

1-3. REST 2단계 - CRUD에 맞게 적절한 HTTP method 사용

하려는 목적에 맞게 먼저 {method} {URI}를 입력해줌으로써 어느 데이터(URI)에게 어떤 해동(method)를 하라는 것을 알 수 있음
GET /doctors/허준/slots?date=2022-08-10 HTP/1.1을 보면 “허준 의사의 8월 10일 일정을 가져와줘"라는 것을 알 수 있음

1-4. REST 3단계 - HATEOAS 적용

HATEOAS(Hypertest As The Engine Of Application State)로 하이퍼미디어 컨트롤 적용 → 요청(request)는 2단계와 동일하되 응답(response)에는 리소스 URI를 포함한 ‘링크'요소 삽입 작성. 이로 인해 새로운 기능에 접근할 수 있도록 해주는 것이 핵심

2. API KEY & OPEN API

사실 정보는 매우 중요한 자산이다. 이런 것을 무료로 주는 것은 자신의 사업을 그냥 남에게 오픈하는 것과 같음.

따라서, 일부 허가된 사용자들에게만 허가되고 추적관리를 위해 만든 것이 API KEY

💡 내가 신분증(API KEY)를 찍어야지만 자료실에 들어가서 자료를 뺴올 수 있음 → 사용기록이 남고 추적관리에 용이

그러나, 공공기관 등 만든 사람에 따라서 정보를 ‘공개’로 설정할 수 있음 → 이것을 OPEN API라고 함 (누구나 접근이 가능하지만 약간의 제한(월 정보요청 횟수, 정보량 제한 등등)이 있을 수 있음

참고자료

https://bentist.tistory.com/37
https://evan-moon.github.io/2020/04/07/about-restful-api/
https://velog.io/@soom/REST-Representational-State-Transfer

profile
꾸준히 공부하자

0개의 댓글