web-dev-qa-db-ja.com

APIとWebサービス

WebサービスとAPIの違いは何ですか?違いは、データの転送に使用されるプロトコル以上ですか?ありがとう。

200
chips

API(アプリケーションプログラミングインターフェイス)は、サードパーティが他のコードとインターフェイスするコードを記述できる手段です。 WebサービスはAPIの一種であり、ほとんどの場合、HTTP上で動作します(ただし、SOAPなどの一部はSMTPなどの代替トランスポートを使用できます)。 公式のW3C定義 は、Webサービスが必ずしもHTTPを使用するとは限らないことに言及していますが、これはほとんどの場合に当てはまり、特に明記しない限り通常想定されています。

特にWebサービスの例については、 SOAPREST 、および XML-RPC を参照してください。ローカルマシンで使用するためにCで記述された別のタイプのAPIの例については、 Linux Kernel API を参照してください。

プロトコルに関する限り、WebサービスAPIはほとんど常にHTTP(したがってWebパーツ)を使用し、間違いなくネットワークを介した通信を伴います。一般に、APIは希望する通信手段を使用できます。たとえば、LinuxカーネルAPIは、 Interrupts を使用して、ユーザー空間からの呼び出し用のAPIを構成するシステムコールを呼び出します。

167

基本的に、Webサービスは2つのマシン間の通信方法であり、APIは何かに対するプログラミングを可能にする公開されたレイヤーです。

APIがあり、そのAPIとやり取りする主な方法はWebサービスを使用することです。

技術的な定義(ウィキペディア提供)は次のとおりです。

API

アプリケーションプログラミングインターフェイス(API)は、アプリケーションの構築をサポートするために、ライブラリやオペレーティングシステムサービスによって提供されるルーチン、データ構造、オブジェクトクラス、および/またはプロトコルのセットです。

ウェブサービス

Webサービス(Webサービス)は、W3Cによって「ネットワークを介した相互運用可能なマシン間相互作用をサポートするように設計されたソフトウェアシステム」として定義されています。

52
Mark Biek

一般的な意味では、Webサービス API over HTTPです。多くの場合、JSONまたはXMLを使用しますが、他にもいくつかのアプローチがあります。

39
cgp

APIは、コンポーネントAがコンポーネントBと通信する方法を定義する公開されたインターフェースです。

たとえば、Doubleclickには公開されたJava APIがあり、ユーザーはデータベーステーブルに問い合わせてオンライン広告キャンペーンに関する情報を取得できます。

例えばGetNumberClicks(ユーザー名)を呼び出します

APIを実装するには、クラスパスにDoubleclick .jarファイルを追加する必要があります。呼び出しはローカルです。

Webサービスは、インターフェイスがWSDLによって定義されるAPIの形式です。これにより、HTTPを介したインターフェイスのリモート呼び出しが可能になります。

DoubleclickがインターフェースをWebサービスとして実装した場合、Tomcat内で実行されるAxis2などを使用します。

リモートユーザーはWebサービスを呼び出します

例えばGetNumberClicksWebServiceを呼び出す(ユーザー名)

getNumberClicksWebServiceサービスはGetNumberClicksをローカルに呼び出します。

10
nzpcmad

API(アプリケーションプログラミングインターフェース)、完全なフォーム自体は、アプリケーションに役立つ何らかの機能を公開する他のアプリケーションのインターフェースのヘルプまたはサポートを使用してアプリケーション用にプログラムできるインターフェースであることを示唆しています。

たとえば、ウェブサイトで更新された通貨為替レートを表示するには、独自のデータベースで通貨レートと定期的な更新を行う予定がない限り、サードパーティのインターフェースをプログラムする必要があります。この機能セットは、すでに他の誰かと利用可能であり、他の人と共有したい場合、エンドポイントがそのような相互作用に関心のある他の人と通信する必要があるため、Web-サービス。このエンドポイントは、APIに対してプログラミングできるアプリケーションのインターフェースに他なりません。

7
Manoj Dwivedi

APIはコードベースの統合であり、WebサービスはWSDLなどのコントラクトを持つ相互運用可能な標準とのメッセージベースの統合です。

4
Pingala

WebサービスはWeb APIとして考えてください。 APIは現在、このような一般的な用語であるため、Webサービスは、通常はビジネス関連の機能へのインターフェイスであり、さまざまなプロトコルを介してネットワークからアクセスできます。

3
Joshua Belden

これを確認してください http://en.wikipedia.org/wiki/Web_service

そのリンクが言及したように、Web APIはWebサービスの開発であり、Web 2.0に関連する可能性が高いのに対し、SOAPベースのサービスはRESTベースの通信に置き換えられます。 RESTサービスはXML、SOAP、またはWSDLサービスAPI定義を必要としないため、これは従来のWebサービスとは大きく異なることに注意してください。

1
longbkit

別の例:google map api vs google direction api Webサービス、前者はjavascriptファイルをサイトに配信(配信)し、APIは新しい関数を作成するために使用できますが、後者はデータを配信するRest Webサービスです( jsonまたはxml形式で)、処理できます(APIの意味では使用されません)。

0
anu