새소식

Data

REST API(RESTful API)

  • -

API(Application Programming Interface)

  • 애플리케이션 소프트웨어를 빌드/통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스
  • 각 기업에서 API 통해 자사 애플리케이션의 데이터/기능을 외부 써드파티 개발자, 비즈니스 파트너, 사내 부서에 공개O
  • 문서화된 단일 인터페이스 통해 여러 서비스/제품들끼리 서로 통신하고 상호 데이터 기능 활용O
  • 개발자는 API가 어떻게 구현되었는지 알 필요 없음
  • 다른 제품/서비스와 통신하는 데 API 사용하면 됨
  • 컴퓨터, 애플리케이션의 상호 통신 방식을 설명하게끔 정의된 규칙의 모음
  • 애플리케이션, 웹 서버 사이의 중간 계층 역할을 하며 시스템 간의 데이터 전송 처리
  • 기능상 보안 제공
    • 두 시스템 사이에서 중개자 역할하며 기능 추상화
    • API 엔드포인트가 서비스 소비자인 애플리케이션, 그 서비스 제공하는 인프라를 분리함
    • 일반적으로 API 호출 시 인증 자격 증명이 포함돼 서버 대한 공격 위험 줄임
    • API 게이트웨이는 액세스 제한해 보험 위험 최소화
    • 교환 과정에서 HTTP 헤더, 쿠키, 쿼리 문자열 매개변수 의해 데이터 보안 이루어짐

API의 작동 방식

1. 클라이언트 애플리케이션에서 정보 가져오기 위해 API 호출 시작 - 요청(request)

  • 애플리케이션 -> 웹 서버로 '요청(request)' 전달됨
    • API의 URI(Uniform Resource Identifer) 사용해 처리됨

2. API는 유효한 요청 받으면, 외부 프로그램/웹 서버에 호출

3. 서버가 API에 응답하면서 요청받은 정보를 보냄

4. API가 원래 요청했던 애플리케이션에 데이터 전송

 

▶ API 동작 예시 : 결체 처리 서비스 API

  • 고객이 온라인 쇼핑몰 애플리케이션의 프론트 엔드에서 카드 정보 입력
  • 결제 처리 기관은 사용자의 은행 계좌에 액세스X
  • API가 거래 위한 고유 토큰 생성
  • 서버 호출 시 토큰 포함

=> 더 높은 보안, 해킹 위협 방지

API가 필요한 이유

  • 협업 증진
  • 데이터 수익화
  • 보안 강화

대표적인 API 예시

  • 범용 로그인 : Facebook, Twitter 등 프로파일 로그인 정보 사용해 웹 사이트에 로그인 하는 기능
  • 써드파트 결체 처리 : 온라인 쇼핑몰의 "Pay with PayPal" 기능
  • 여행 예약 비교 : 애플리케이션 사용자가 이용 가능 호텔/항공사 대한 최신 정보에 액세스하게 해주는 API
  • Google Maps
  • Twitter

 

 

 

REST API(REpresentational State Transfer API)

  • API : 애플리케이션, 디바이스가 서로 연결해 통신할 수 있는 방법을 정의하는 규칙 세트
  • REST API : REST(REpresentational State Transfer) 아키텍처 스타일 디자인 원칙을 준수하는 API
    • RESTful API라고도 함
  • 두 컴퓨터 시스템이 인터넷 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
    • 대부분 비즈니스 애플리케이션은 다양한 태스크 수행 위해 다른 내부 애플리케이션, 서드 파티 애플리케이션과 소통해야 하고 REST API 통해 안전/신뢰할 수 있는 교환O

REST API 작동 방식

  • REST API 기본 기능은 인터넷 브라우징과 동일
  • HTTP Request 통해 통신
  • Resource 내 레코드 CRUD(Create, Read, Update, Delete) 등 표준 데이터베이스 기능 수행
  • 예시 : REST API는 GET 요청 사용해 레코드 검색, POST 요청 사용해 레코드 작성, PUT 요청 사용해 레코드 업데이트, DELETE 요청 사용해 레코드 삭제
  • 모든 HTTP Method는 API 호출에서 사용O
  • 리소스 표현 : 특정 순간, 타임스탬프 리소스 상태
    • JSON(Javascript Object Notation), HTML, XLT, Python, PHP, 일반 텍스트 포함해 실제로 거의 모든 형식으로 클라이언트에게 전달O
    • JSON은 사람/기계 모두 읽을 수 있고 프로그래밍 언어에 구애받지 않아 자주 사용됨 

 

 

출처

https://www.ibm.com/kr-ko/topics/api

https://www.ibm.com/kr-ko/topics/rest-apis

https://aws.amazon.com/ko/what-is/restful-api/

 

'Data' 카테고리의 다른 글

Elasticsearch 인덱스 매핑 방법  (0) 2024.02.02
Elasticsearch 인덱스 생성&삭제  (1) 2024.02.02
Elasticsearch 구조  (0) 2024.02.02
Ubuntu 22.04에서 ELK - Elasticsearch, Kibana 설치  (0) 2024.01.30
ELK란?  (0) 2024.01.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.