2019年6月8日 星期六

Web Service及 Web API 有何不同?

學海無涯,回頭是岸。(誤)

為了規劃新的資料平台及相關系統,遇到一堆自己常混淆的名詞,只好停下來請教專家及上網查些資料,就留個紀錄也方便日後查詢。

Web Service及 Web API的差別,整理後的結論:
  1. 兩者都提供資料的方式,差異WebService是使用SOAP協定,WebAPI使用HTTP協定。
  2. Window開發WebServie會有跨平台資料存取問題,而且資料操作複雜,WebAPI使用原生的HTTP協定,並無跨平台資料存取問題
  3. Web API可以藉由 GET, POST等method,由使用者自由進行自訂的查詢等工作。
  4. 符合RESTful的Web API為目前趨勢,優點是易讀易懂,故目前Google與Line所提供服務幾乎都是使用WebAPI的方式。
  5. SAOP的Webservice有完整的WS-*安全認證及簽章標準,但Web API只能仰賴https。

===========
Web Service及 Web API的差別
http://www.differencebetween.net/technology/internet/difference-between-api-and-web-service/

===========
HTTP協議
https://zh.wikipedia.org/wiki/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE

OAP協議
https://zh.wikipedia.org/wiki/%E7%AE%80%E5%8D%95%E5%AF%B9%E8%B1%A1%E8%AE%BF%E9%97%AE%E5%8D%8F%E8%AE%AE

某知名不具的強大工程師提供
==================
Web Services基礎架構

Web Services的基礎包括:XML、WSDL、SOAP、UDDI
其底層運作架構模式步驟如下:
1:以XML格式為基準將資料轉變為Web Services的資料
2:利用WSDL描述將服務的對象做一個描述,使另一端可以特過這一個描述,解譯所得的資料
3:以SOAP通訊底層,進行傳送的動作
4:向UDDI進行搜尋或是註冊動作

Simple Object Access Protocol (SOAP) --- ACCESS
SOAP是一個類似"envelope"的封包,將XML的訊息打包以後,透過HTTP在client和Web Services間傳送。
指的是一種提供給Web Services以XML製作出來的通訊協定,目前版本是1.2,就像是打電話必須通過電話線或是無線基地台等等,其目的就是讓應用程式與應用程式能相互溝通,但不需要知道彼此的作業平台是那一種或是各自如何實作等細節資訊。


Universal Description, Discovery and Integration (UDDI)
UDDI有三大部分:
white pages--公司連絡的資訊
yellow pages--這個service提供哪一種類的資訊
green pages--列出business rules和規定如何和Web services進行溝通
也是一種以XML為基礎的文件,告知服務提供者公告可以提供Web Services,也可以告知服務使用者可以利用搜尋服務之電話簿。

=====================
Web API
Web API 是透過 HTTP 的一個 Web Services,REST會搭配XML和HTTP 協定
REST強調以下概念:
透過特定ID來存取資源。單一資源可對應多項ID 但單一ID只能對應單一資源 也就是資源是可一對多

區別resource(資源)與Representation(表現)。用戶端存取資源時,只能操控伺服器的Representation
Representation中可包含連至其他資源的連結

使用HTTP的GET PUT DELETE 與其他指令,操控資源與其相關的表現

使用XML Schema之類的中繼資料(Metadata)技術,讓 Representation具有自我描述的特性

Resource和representation 是以超媒體的形式對外公開,在rest架構之下,伺服器不須記憶或管理狀態,而是由用戶端來管理狀態。
即用戶端與伺服器端之間的資料交換,並非由非由伺服器來決定

採用REST軟體架構可讓web應用程式更具彈性!

Web Services Description Language (WSDL) --- DESCRIBE
是一種XML的格式用來描述services的location、services做了什麼樣的事情、且如何和services做溝通。
WSDL主要是描述Web Services的細節,也是 Services應用程式能以一種標準方法來描述自己擁有那些能力,以便讓互動更容易進行。

=========
何謂REST
REST全名 Resource Representational State Transfer ,可譯為具象狀態傳輸。
簡單的說,就是一個單從發出的HTTP要求裡面所包含的資訊,就可以直接預期這要求會收到怎樣類型的資料。再更白話一點,就是人眼看得懂。

https://progressbar.tw/posts/53

弄懂SaaS / PaaS / IaaS 及 WebAPI
https://progressbar.tw/posts/51

淺談 REST 軟體架構風格 (Part.I) - 從了解 REST 到設計 RESTful!
https://blog.toright.com/posts/725/representational-state-transfer-%E8%BB%9F%E9%AB%94%E6%9E%B6%E6%A7%8B%E9%A2%A8%E6%A0%BC%E4%BB%8B%E7%B4%B9-part-i-%E5%BE%9E%E4%BA%86%E8%A7%A3-rest-%E5%88%B0%E8%A8%AD%E8%A8%88-restful%EF%BC%81.html

2 則留言:

匿名 提到...

Web API属于Web service是吗

cychen59 提到...

不嚴謹的說法,也許可以這樣說。
不過,二者仍有本質上的不同。