web-dev-qa-db-ja.com

Web APIとWebサービスの違いは何ですか?

WebサービスとWeb APIについてよく聞いていますが、それらに違いはありますか、それとも同じですか?

86
Harish Kurup

Webサービス-これはW3Cによって定義された標準であるため、半自動または自動(WSDL/UDDI)でアクセスできます。すべてがXMLに基づいているため、誰でもそれを呼び出すことができます。そして、サービスのあらゆる側面が非常に明確に定義されています。パラメータ記述標準、パラメータ受け渡し標準、応答標準、ディスカバリ標準などがあります。おそらく、標準を説明する2000ページの本を書くことができます。認証などの「標準的な」ことを行うためのいくつかの「追加の」標準さえあります。

クライアントがかなり貧弱であるため、自動呼び出しと自動検出がほとんど機能していないという事実にもかかわらず、任意のクライアントから任意のサービスを呼び出すことができるという保証はありません。

Web APIは通常、HTTP/RESTとして行われ、何も定義されていません。 JSON/XML、入力はXML/JSON /プレーンデータにすることができます。何かの基準はありません=>自動呼び出しと検出はありません。テキストファイルまたはPDFで説明を提供したり、Unicodeの代わりにWindows-1250でデータを返したりすることができます。標準を説明するには、いくつかの簡単な情報を記載した2ページのパンフレットにして、その他すべてを定義します。

WebはWeb API/RESTに切り替えています。 Webサービスは、実際にはWeb APIに勝るものはありません。開発が非常に複雑で、より多くのリソース(帯域幅とRAM)を消費します...そしてすべてのデータ変換(REQUEST-> XML-> DATA-> RESPONSE-> XML-> VALIDATION-> CONVERSION-> DATA)のため、スロー。

例えば。 WebAPIでは、データを圧縮し、圧縮して送信し、クライアントで非圧縮+解凍することができます。 SOAPでは、HTMLリクエストしか圧縮できませんでした。

89
Slawek

Webサービスにより、HTTPを介したマシン間通信が可能になります。 Web APIは、REST規則を使用するWebサービスのサブセットです( Wikipediaの記事 を要約すると)。概念は確実に重複しています。リンクはまだあると思いますほとんどの人のWebサービスの考え方-> SOAP/XML-RPCは不必要に問題を混乱させる可能性があります。

最後に、人々が何を意味するのかを明確にするためにいくつかの質問をする必要があります。すべての人が区別したり、用語を同じ意味で使用するわけではありません。

20
Berin Loritsch

W3C で述べられているように、Webサービスは定義されたアーキテクチャーであり、問​​題ドメインへのアプローチです。

Webサービスは、さまざまなプラットフォームやフレームワークで実行される、さまざまなソフトウェアアプリケーション間の相互運用の標準的な手段を提供します

Web APIは概念であり、概念の実装方法に関する手段を抽象化します。

素人の言葉で言えば... Web APIはモーターにありますが、WSは BMW N5 にあります。

6
Aaron McIver