API 및 웹 서비스 [폐쇄]


205

웹 서비스와 API의 차이점은 무엇입니까? 데이터 전송에 사용 된 프로토콜보다 차이가 있습니까? 감사.


3
API는 HTTP로 액세스 한 API를 의미합니까? 아니면 일반 일반 API입니까?
Pablo Santa Cruz



당신은 나를 농담해야합니다. 122 개의 공감대가 있으며 혼합 수준으로 인해 문제가 해결되었습니다.
Joshua

이 질문은 폐쇄 이유를 잘 모르겠어요, 저를 얻었다

답변:


173

API (Application Programming Interface)는 타사가 다른 코드와 인터페이스하는 코드를 작성할 수있는 수단입니다. 웹 서비스는 거의 항상 HTTP를 통해 작동하는 API 유형입니다 (SOAP와 같은 일부는 SMTP와 같은 대체 전송을 사용할 수 있지만). 공식 W3C 정의는 웹 서비스가 반드시 HTTP를 사용하지 않는 것이 언급하지만, 이것은 거의 항상의 경우와 별도의 명시 적 언급이없는 한 일반적으로 가정한다.

구체적으로 웹 서비스의 예는 SOAP , RESTXML-RPC를 참조하십시오 . 로컬 시스템에서 사용하기 위해 C로 작성된 다른 유형의 API의 예는 Linux 커널 API를 참조하십시오 .

프로토콜이 진행되는 한 웹 서비스 API는 거의 항상 HTTP를 사용하므로 (웹 부분) 네트워크를 통한 통신이 반드시 필요합니다. 일반적으로 API는 원하는 통신 수단을 사용할 수 있습니다. 예를 들어 Linux 커널 API는 인터럽트 를 사용 하여 사용자 공간에서의 호출을위한 API를 구성하는 시스템 호출을 호출합니다.


8
모든 웹 서비스를 API로 간주 하시겠습니까? 전체 페이지를 다시로드하는 대신 AJAX를 사용하여 웹 페이지의 영역을 다시로드하는 경우는 어떻습니까? 웹 서비스가 관련되어 있지만 반드시 이것이 API라고 생각하지는 않습니다. 그렇지 않으면, 우리는 DLL, JAR, 웹 서비스 또는 일반 코드 등 모든 함수가 생성 된 모든 API에 대해 모든 API가 될 수 있습니다. API가 API가 되려면 타사 개발자를 염두에 두어야하며 API는 최종 제품 (API를 사용하는 앱)과는 전혀 관련이 없어야합니다.
Ronald

18
예, 모든 웹 서비스는 API입니다. 예, AJAX 웹 서비스는 API이며, 문서화되지 않았으므로 공공 소비 용이 아닙니다. 모든 API가 타사 사용을 위해 설계된 API는 아닙니다. 내부 API도 가질 수 있습니다.
Ryan Shillington

54

기본적으로 웹 서비스는 두 시스템 간의 통신 방법이며 API는 노출 된 계층으로, 무언가에 대해 프로그래밍 할 수 있습니다.

API를 가질 수 있으며 해당 API와 상호 작용하는 주요 방법은 웹 서비스를 사용하는 것입니다.

기술 정의 (Wikipedia 제공)는 다음과 같습니다.

API

API (application programming interface)는 응용 프로그램 구축을 지원하기 위해 라이브러리 및 / 또는 운영 체제 서비스에서 제공하는 루틴, 데이터 구조, 객체 클래스 및 / 또는 프로토콜 세트입니다.

웹 서비스

웹 서비스 (또한 웹 서비스)는 W3C에 의해 "네트워크를 통한 상호 운용 가능한 기계 간 상호 작용을 지원하도록 설계된 소프트웨어 시스템"으로 정의됩니다.


4
나는 누군가 내 대답에 반대하지만 괜찮지 만 이유를 알고 싶어합니다.
Mark Biek

41
귀하의 답변은 실제로 웹 서비스가 API 유형일 때 API와 웹 서비스가 서로 다르다는 것을 의미합니다. 이 질문의 요점은 두 가지의 차이점이므로 웹 서비스가 일종의 API라는 응답을 명확하게하는 것이 중요합니다.
Andrew Cholakian

3
흥미 롭군 나는 (각각 :) 동의하지 않을 것입니다. 그러나 피드백에 감사드립니다.
Mark Biek

44

일반적인 의미에서 웹 서비스 HTTP를 통한 API입니다. 그들은 종종 JSON 또는 XML을 사용하지만 다른 접근 방식도 있습니다.


20
그렇다면 모든 웹 서비스는 API이지만 모든 API가 웹 서비스는 아닙니다.

13
API는 DLL, JAR 또는 OCX 등의 라이브러리 일 수 있습니다. 또한 Facebook의 PHP API와 같은 소스 코드 배포도 가능합니다.
cgp

10

API는 컴포넌트 A가 컴포넌트 B와 통신하는 방법을 정의하는 공개 된 인터페이스입니다.

예를 들어 Doubleclick에는 게시 된 Java API가있어 사용자가 데이터베이스 테이블을 조사하여 온라인 광고 캠페인에 대한 정보를 얻을 수 있습니다.

예 : GetNumberClicks 호출 (사용자 이름)

API를 구현하려면 Doubleclick .jar 파일을 클래스 경로에 추가해야합니다. 현지 통화입니다.

웹 서비스는 인터페이스가 WSDL을 통해 정의되는 API 형식입니다. 이것은 HTTP를 통한 인터페이스의 원격 호출을 허용합니다.

Doubleclick이 인터페이스를 웹 서비스로 구현 한 경우 Tomcat 내에서 실행중인 Axis2와 같은 것을 사용합니다.

원격 사용자는 웹 서비스를 호출합니다

예 : GetNumberClicksWebService (사용자 이름) 호출

GetNumberClicksWebService 서비스는 GetNumberClicks를 로컬로 호출합니다.


이 질문은 실제로 오래되었지만이 답변은 API와 인터페이스를 혼란스럽게합니다. API는 공개 된 인터페이스 (SOAP와 같은 것을 포함) 이상이며, 특정 응용 프로그램이나 서비스에 대한 공용 인터페이스입니다. "API는 타사 구성 요소와 상호 작용할 수있는 게시 된 인터페이스가있는 구성 요소입니다."와 같은 것을 말하는 것이 더 정확합니다.
JDB는 여전히 Monica를 기억합니다.

7

전체 형태 자체 인 API (Application Programming Interface)는 응용 프로그램에 유용한 기능을 제공하는 다른 응용 프로그램 인터페이스의 도움이나 지원으로 응용 프로그램을 프로그래밍 할 수있는 인터페이스를 제안합니다.

예를 들어 웹 사이트에 업데이트 된 환율을 표시하려면 환율과 동일한 데이터베이스를 정기적으로 업데이트하려는 경우를 제외하고 프로그래밍 할 타사 인터페이스가 필요합니다. 이 기능 세트는 다른 사용자와 이미 사용 가능하고 다른 사용자와 공유하려는 경우 이러한 상호 작용에 관심이있는 다른 사용자와 통신 할 엔드 포인트가 있어야 웹을 통해 웹에 배치 할 수 있습니다. 서비스. 이 끝점은 API에 대해 프로그래밍 할 수있는 응용 프로그램의 인터페이스 일뿐입니다.


4

API는 코드 기반 통합이며 웹 서비스는 WSDL과 같은 계약을 가진 상호 운용 가능한 표준과의 메시지 기반 통합입니다.


귀하의 답변이 기존 답변에 무언가를 추가하는지 확실하지 않습니다.
andrewsi

3

웹 서비스를 웹 API로 생각하십시오. API는 이제 일반적인 용어이므로 웹 서비스는 다양한 프로토콜을 통해 네트워크에서 얻을 수있는 기능 (일반적으로 비즈니스 관련)에 대한 인터페이스입니다.


1

http://en.wikipedia.org/wiki/Web_service를 확인하십시오 .

앞에서 언급 한 링크에서 Web API는 웹 2.0과 관련이있는 웹 서비스에서 개발 된 반면 SOAP 기반 서비스는 REST 기반 통신으로 대체됩니다. REST 서비스에는 XML, SOAP 또는 WSDL 서비스 API 정의가 필요하지 않으므로 이는 기존 웹 서비스와 크게 다릅니다.


0

또 다른 예 : 구글지도 API 대 구글 방향 API 웹 서비스, 전자는 자바 스크립트 파일을 사이트에 제공 (제공)하고 새로운 기능을 만들기 위해 API로 사용할 수있는 후자는 데이터를 제공하는 나머지 웹 서비스입니다 ( json 또는 xml 형식으로) 처리 할 수 ​​있지만 API에서는 사용할 수 없습니다.


1
Uhm ... 자바 스크립트는 데이터로 반환 된 다음 코드로 사용될 수 있습니다. 이는 유효한 대조가 아닙니다
David C
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.