티스토리 뷰

CS

API (HTTP API, REST API)

s00oo 2024. 1. 15. 11:22

▶︎ API(Application Programming Interface)

  • 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어에서 제공하는 기능을 제어할 수 있게 해주는 인터페이스
  • 애플리케이션 간에 지정된 형식으로 요청과 응답을 할 수 있도록 연결하는 것
  • 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙
  • 응용프로그램에서 소통하기 위한 접점

 

▶︎ 인터페이스

  • 상호간에 소통을 위해 만들어진 접점.
  • 사람과 사람, 사람과 사물 또는 기기를 연결하는 것.
  • 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템.

예시) 키보드(사람-컴퓨터), 차키(사람-자동차), 배달 어플(사람-어플)

 

 ▷ UI(User Interface)

  • 사용자가 소통하기 위한 접점.
  • 사람(사용자)과 사물 또는 시스템, 기계, 컴퓨터 프로그램 등 사이에서 의사소통을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 물리적, 가상적 매개체

 

▶︎ Web API

  • 웹 서버나 웹 브라우저를 위한 API
  • 클라이언트와 웹 리소스 사이의 게이트웨이
  • 개발자가 브라우저 상에 쉽게 개발할 수 있도록 도와주는 객체 모음. 객체 기반으로 동작하고 엔트리 포인트가 존재
  • HTTP 표준 접근 방식을 이용하며 플랫폼 환경, 클라이언트 환경의 제한이 없는 서비스 구현이 가능

 ▷ 클라이언트

  • 웹에서 정보에 접근하려는 사용자
  • 클라이언트는 API를 사용하는 사람이거나 소프트웨어 시스템일 수 있다.

 ▷ 리소스

  • 다양한 애플리케이션이 클라이언트에게 제공하는 정보이다.
  • 리소스는 이미지, 동영상, 텍스트, 숫자 또는 모든 유형의 데이터일 수 있다.

클라이언트에 리소스를 제공하는 시스템을 서버라고도 한다. 조직은 API를 사용하여 리소스를 공유하고 보안, 제어 및 인증을 유지하면서 웹 서비스를 제공한다. 또한 API는 특정 내부 리소스에 액세스할 수 있는 클라이언트를 결정하는 데 도움이 된다.

 

사용 가능한 웹 API: Web APIs

웹 API 그림: WebAPI.png

 

 

▶︎ HTTP API

  • HTTP 프로토콜(웹에서 정보를 주고받는 데 사용되는 표준 프로토콜)을 사용하는 API
  • 서로 다른 두 애플리케이션(또는 시스템)간의 통신을 위한 규약

 

▶︎  REST API

  • REST 아키텍쳐 스타일을 따르는 API
  • HTTP 요청을 할 때 어떤 URI에 어떤 method를 사용할지에 대한 개발자들 사이에서 널리 사용되어지는 약속
  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 이름으로 구분해서 해당 자원에 대한 상태, 정보를 주고받는 것을 의미한다.
  • HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 활용하여 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미한다.

REST에서의 CRUD Operation 동작 예시

Create : 데이터 생성(POST)
Read : 데이터 조회(GET)
Update : 데이터 수정(PUT, PATCH)
Delete : 데이터 삭제(DELETE)

 

 

 REST(REpresentational State Transfer): 분산 하이퍼미디어 시스템(예: 웹)을 위한 아키텍쳐 스타일(제약조건의 집합)

 

REST 제약조건들을 모두 지키면서 설계하는 것이 RESTful 하다고 말을 한다. RESTful API는 아래의 4가지 가이드 원칙을 지킴.

1. 자원의 식별
2. 메세지를 통한 리소스 조작
3. 자기서술적 메세지
4. 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어(HATEOAS)

 

정리


Web API는 HTTP API의 상위 개념, REST API는 HTTP API의 특정 구현 방법 중 하나이다.

REST API는 HTTP 프로토콜 형식을 따르고 제약조건을 지키면서 설계하는 것을 말하며 이 제약조건을 완벽하게 지키면서 개발하는 것이 RESTful API이다.

하지만 이런 식으로 개발하는 것은 현실적으로 어려우면서 효과가 큰 것도 아니다. 그래서 보통은 REST API와 HTTP API를 같은 의미로 사용하고있다.

그러나 엄연히 위에 제약조건을 전부지켜야 REST API라고 말할 수 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함