2016-09-06 50 views
0

在許多問題中,人們已經解釋了API和Web服務之間的區別。我知道這是服務提供者和服務使用者之間的一種溝通方式,但兩者看起來都是一樣的:消費者發送請求並從提供者那裏得到迴應。api和web服務的區別?

  1. 如果是這樣,那麼真正使它們與衆不同的是什麼?

  2. 爲什麼我們有兩個不同的方面,兩者Web服務API

回答

1

我覺得這是從用戶寮步寮步here於'13 4月12日,一個偉大的回答:

處於低水平Web應用和Web服務是有點相同 的事情。它們都通過http(s)進行操作。 SOAP只是XML的一個明確定義的 版本。 REST只是HTTP。如果你願意,你可以使Web應用程序看起來像Web服務,反之亦然。

主要區別在於基於您使用的 平臺的內部開發選項。例如,如果您正在使用Visual Studio ,那麼添加WCF服務應用程序將爲您提供一個默認爲WCF的項目,其格式爲 。但選擇任何其他應用程序類型 不會阻止您添加Web服務。

使用SOAP通常比普通的舊XML這些 原因是更好的選擇:

  • 你的用戶會被期待它,並有可能知道如何讀它 了。
  • 您的用戶的開發環境可能會知道關於SOAP的所有 ,並且能夠將其解釋爲開箱即用。 (如果您提供了 WSDL文件,那麼很多用戶將能夠在幾秒鐘內使用腳本生成 您的課程。)
  • 您的消息更有可能是 定義好的。我正在開發一個項目,此時對方 已經定義了他們自己的隨機XML結構,這是一個與 一起工作的噩夢。我從來不知道會發生什麼,並且他們不同的消息類型之間幾乎沒有什麼一致。至少如果他們已經同意遵守SOAP,那麼我可能會更容易解釋他們的消息 。
0

的API不必是Web服務在所有(雖然在網絡世界它更可能是一個API是一個Web服務)。 API可以用於數據庫連接的硬件等。

1

API不一定是基於網絡的。這實際上只是的規範,如何使用編程語言將與其他人的工作交談。另一方面,web service其他人的工作的一個例子,程序將使用API​​與之通話。

對於Web服務,API可能會指定如何通過Web與服務進行通信以使用它。但是,通常不會直接描述服務的通信協議。相反,API將是如何使用服務作者提供的客戶端庫的規範。 Google Maps API就是一個很好的例子。 Google同時提供瞭如何通過HTTP(網絡服務API)和Javascript中的客戶端庫從其服務請求數據的規範,該規範可用於請求相同的事情。

但是,這不是唯一可能使用的術語API。 jQuery(這是一個Javascript庫,但不是遠程Web服務)也提到它的文檔爲API Documentation。同樣,API上的Wikipedia頁面給出了操作系統的POSIX標準示例。

簡而言之,API是一個規範,而Web服務是可以用API記錄的系統的一個示例。

0

API和Web服務作爲通信手段

Web服務便於在一個network.Web服務兩個機器之間的交互也使用SOAP,REST和XML-RPC作爲通信手段。

API充當兩個不同應用程序之間的接口,以便它們可以相互通信。 API是第三方供應商可以編寫與其他程序輕鬆交互的程序的一種方法.API可以使用任何通信手段來啓動應用程序之間的交互。

  1. 所有Web服務都是API,但所有的API都不是Web服務。

  2. Web服務可能不會執行API將執行的所有操作。

  3. 一個Web服務只使用三種風格的使用:SOAP,REST和XML-RPC通信,而API可以使用任何風格進行通信。

  4. Web服務始終需要一個網絡來運行,而API不需要網絡來運行。

  5. 的API便於直接與應用程序,而一個Web服務接口是

2

以上所有答案都是完全正常,考慮一個短信 -

API =與一些其它代碼連接(內部[無網絡]或外部[網絡])

API over HTTP = Web服務

相關問題