API対Webサービス[終了]


205

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


3
APIとは、HTTPによってアクセスされるAPIを意味しますか?それとも通常のプレーンAPIですか?
Pablo Santa Cruz、


1
programmers.SEも参照してください:Web APIとWebサービスの違い?
ヒッピートレイル2014年

ふざけないで。122の賛成票とレベルが混在しているため、問題は解かれました。
ジョシュア

あなたは私を得た、私はこの質問が閉じられた理由がわからない
チップ

回答:


173

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

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

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


8
すべてのWebサービスをAPIと見なしますか?ページ全体を再ロードするのではなく、AJAXを使用してWebページの領域を再ロードする場合はどうでしょうか?Webサービスが関係していても、必ずしもAPIであるとは限りません。それ以外の場合は、DLL、JAR、Webサービス、プレーンコードなど、これまでに作成された関数のすべてのビットをすべてAPIにする場合があります。APIがAPIになるためには、サードパーティの開発者を念頭に置く必要があり、APIは最終製品(APIを使用しているアプリ)との依存関係があってはなりません。
ロナルド

18
はい、すべてのWebサービスはAPIです。はい、AJAX WebサービスはAPIであり、ドキュメント化されていないため、実際に公共で使用するためのものではありません。すべてのAPIがサードパーティの消費向けに設計されたAPIであるとは限りません。内部APIも使用できます。
ライアンシリントン2014

54

基本的に、Webサービスは2台のマシン間の通信方法であり、APIは公開されたレイヤーであり、何かに対してプログラミングすることができます。

あなたは非常によくAPIを持っている可能性があり、そのAPIと対話する主な方法はウェブサービスを経由することです。

技術的な定義(Wikipedia提供)は次のとおりです。

API

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

ウェブサービス

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


4
私は私の答えに反対する人に大丈夫ですが、なぜか知りたいです。
Mark Biek

41
応答は、実際にはWebサービスがAPIの一種である場合に、APIとWebサービスが異なることを意味します。この質問の要点は2つの違いは何ですか?応答では、WebサービスがAPIの一種であることを明確にすることが重要です。
Andrew Cholakian、2009

3
面白い。私は(敬意を込めて)敬意を払わなければなりません。しかし、私はフィードバックに感謝します。
Mark Biek

44

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


20
それで、すべてのWebサービスはAPIですが、すべてのAPIがWebサービスではありませんか?
チップ

13
そうです、APIはDLL、JAR、OCXなどのライブラリにすることができます。また、FacebookのPHP APIなどのソースコードディストリビューションにすることもできます...
cgp

10

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

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

例:GetNumberClicks(ユーザー名)を呼び出す

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

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

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

リモートユーザーがWebサービスを呼び出す

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

また、GetNumberClicksWebServiceサービスはGetNumberClicksをローカルで呼び出します。


この質問は本当に古いですが、この回答はAPIとインターフェースを混同していることに注意します。APIは、公開されたインターフェース(SOAPなどを含む)よりも、特定のアプリケーションまたはサービスへのパブリックインターフェースです。「APIは、サードパーティのコンポーネントがそれらとやり取りするための公開されたインターフェースを持つコンポーネントです」のようなものを言う方がより正確でしょう。
JDBはまだモニカを記憶しています

7

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

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


4

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


あなたの答えが既存の答えに何かを追加するかどうかはわかりません。
andrewsi 2012

3

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


1

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

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


0

別の例:グー​​グルマップAPIとグーグルディレクションAPI Webサービス、前者はJavaScriptファイルをサイトに配信(配信)し(これをAPIとして使用して新しい関数を作成できます)、後者はデータを配信するRest Webサービスです( jsonまたはxml形式で)、処理できます(apiの意味では使用されません)。


1
Uhm ... javascriptをデータとして返し、コードとして使用できます。これは有効な対比ではありません
David C
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.