Jin's Study

[WEB] API와 REST API 본문

CS/WEB

[WEB] API와 REST API

PolarJin 2024. 9. 28. 23:10

🔌 API(Application Programming Interface) :

컴퓨터의 기능을 실행시키는 방법. 하나의 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 방법

 

✏️ API가 가져야 할 내용

예)
(GET요청)comic.naver.com/webtoon/detail ?id=318995

1. 요청방식이 들어가야(method) : 데이터 보내달라고 할 것임? 데이터를 보낼 것임?

2. 무슨 자료를 요청할지(endpoint): 어떤 데이터를 요청할 것임.(웹툰? 댓글? 뉴스?) URL형식으로 저장. 

3. 자료 요청에 필요한 추가 정보 : 파라미터. 내 아이디, 이름, 몇화보고 싶은지 이런거

+ 웹의 경우 REST API라는 원칙에 따라 작성하면 좋음

 

  • public API : 누구나 사용가능한 공개 API
  • private API : 사내에서 몰래쓰는 API
  • partner API : 미리 정해둔 것만, 그런 사람들만 쓸 수 있는 API

 

✏️ 모든 프로그램은 API를 가질 수 있음

Windows API : 이거 쓰면 윈도우 운영체제 기능들 사용가능

Database 관리프로그램 API : 이거 쓰면 DB 입출력 기능들 사용가능

-> 프로그램이 존재한다면 프로그램을 동작시키기위한 방법이기때문에 API는 항상 있다. 

 

🔌REST란?

Representational State Transfer의 약자.

자원(Resource)을 "표현"하는 방식을 사용해서 네트워트 상에서 상태와 자원을 전송하는 아키텍쳐 스타일.

특정한 기술이나 프로토콜에 종속되지 않고, 특히 HTTP프로토콜을 활용하여 클라이언트와 서버 간의 데이터를 주고 받는 방식으로 설계.

대표적으로는 JSONXML형식을 많이 사용

🖇️ REST의 구성요소

1. 자원(Resource): 서버에서 제공하는 데이터나 기능을 가리킴.

예) http:// api.example.com/user/1(1번 사용자 정보)

2. 표현(Represent) : 자원의 상태나 정보를 전달하는 방식. 주로 JSON나 XML 같은 형식.

예) {"id": 1, "name": "홍길동"} (JSON형식)

 

3.HTTP 메서드 : 자원에 대해 수행할 작업을 명시하는 메소드

  • POST : 새로운 자원을 서버에 생성(쓰기)
  • GET : 자원의 상태나 정보를 조회(읽기)
  • PUT: 자원의 상태를 전체적으로 업데이트(수정)
  • PATCH : 자원의 상태를 부분적으로 업데이트(수정)
  • DELETE : 자원을 삭제(삭제)

 

 

🔌 REST API

: REST 원칙을 기반으로 구현된 API. 

기계와 기계가 규격화된 방식으로 인터넷, 웹을 이용해서 통신할 수 있도록 돕는 통신 규칙

(클라이언트가 서버에 HTTP 요청을 보내어 자원에 접근하고 그 상태를 조회하거나 수정하는 방식)

 

Restful web service는 통신을 위해 REST API를 사용하는 서비스

 

👍🏻 REST API 장점

  • 간결하고 직관적 : 웹 표준인 HTTP를 기반으로 동작하므로 쉽게 이해하고 사용할 수 있음
  • 유연성 : 다양한 데이터 형식을 지원하고 여러 플랫폼에서 쉽게 연동할 수 있음
  • 확장성 : 서버와 클라이언트가 독립적으로 동작하므로 시스템 확장이 용이

👎🏻 REST API 단점

  • 무상태성 : 매 요청마다 필요한 정보를 모두 포함해야하므로, 클라이언트와 서버 간의 통신량이 많아질 수 있음
  • 표준 부족 : REST 자체가 구체적인 구현 표준이 없기 때문에 설계에 따라 일관성이 떨어질 수 있음

 

=> REST API는 웹 애플리케이션, 모바일 애플리케이션, 사물인터넷(IoT)등 다양한 환경에서 널리 사용됨.

 

 

🗝️ 요약

 

  • REST: 자원을 URI로 식별하고, 그 자원의 상태를 HTTP로 전송하는 아키텍처 스타일.
  • REST API: REST 원칙을 따르는 API로, 클라이언트가 HTTP를 통해 서버 자원에 접근하여 조작하는 방식.

 

출처:

https://youtu.be/ckSdPNKM2pY?si=qyYwPYRA38rlFEyc

https://youtu.be/PmY3dWcCxXI?si=rUqwt8U73DjCODGj

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io