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 |