본문 바로가기
  • 개발 삽질 블로그
프로그래밍/개발지식

API의 개념과 종류

by 갹둥 2023. 9. 26.

API( Application Programming Interface)란? 

응용프로그램에서 사용할 수 있도록 만든 인터페이스

서비스 간의 통신을 위해 사용

 

API 종류

1) SOAP API

-그 자체로 프로토콜, stateful

-XML을 데이터 포맷으로 사용

-캐시를 사용할 수 없음

-엄격한 통신 규약을 갖고 있으며, 모든 메세지는 보내지기 전에 알려져야함

-자체적인 ACID 기준이 있음, 데이터 손상 줄여줌

-WS-Security를 지원하기 때문에 보안 측면에서 엄격함

-많은 리소스 및 대역폭 필요

 

 

2) RESTAPI

-아키텍처 스타일, stateless

-데이터 위주, 직관적으로 CRUD 처리

-JSON,  XML, HTML 등 다양한 데이터 포맷 사용

-캐시를 사용할 수 있음

-미리 알릴 필요 없음

-비교적 적은 리소스 필요, 가벼운 통신

 

 

* SOAP vs REST

-SOAP은 엄격한 보안성을 갖고 있기 때문에 주로 금융, 통신, 결제 시스템 등 기업용 서비스에서 사용됨

-REST는 사용하기 비교적 편리하고 쉽게 해석이 가능하기 때문에 기상정보 같은 공공데이터나 보안이 크게 중요하지 않는 분야에서 사용됨

 

 

3) GraphQL API

-API를 위한 쿼리 언어로 2012년 페이스북에서 개발하여 REST API를 대체하여 사용할 수 있음

-데이터를 서버로부터 가져오는 것이 목적

-기존 REST API와 다른점

1) 보통 하나의 엔드포인트만 존재

2) 원하는 데이터만 받을 수 있음

3) 요청할 때 쿼리(필드)를 사용하여 응답을 받을 수 있음

 

ex)

endpoint: .../graphql?query={data(id:2){name}}

response:
{
	"name": "gaeun"
}

하나의 엔드포인트에 다른 쿼리로 요청해서 다른 응답을 받을 수 있음

 

 

API 유형

-프라이빗(Private): API를 내부에서만 사용

-> 기업이 최대로 제어 가능

 

-파트너(Partner): API를 특정 비즈니스 파트너와 공유 

-> 품질 저하 없이 새로운 수익 창출 가능

 

-퍼블릭(Public): API를 모두에게 제공

-> 새로운 오픈 혁신을 이끌어낼 수 있음 

 

 

 

 

 

참조: https://www.redhat.com/ko/topics/api/what-are-application-programming-interfaces

'프로그래밍 > 개발지식' 카테고리의 다른 글

[JavaScript] Event 인터페이스  (0) 2023.11.10
[JavaScript]JS Function 함수  (0) 2023.10.04
[JavaScript]타입과 스코프  (0) 2023.09.27
웹 스토리지(Web Storage), 쿠키(Cookie)  (0) 2023.07.29
DAO/DTO  (0) 2022.12.10