RESTful API 是什麼 ?

您可能因為近年有關 RESTful Web 服務的炒作,而認為它是一兩年前突然出現的新概念。事實上,RESTful API 的基礎概念與 Web 本身一樣歷史悠久,並且確實從 Web 角度來看會最容易理解。

RESTful API 圖

在深入研究什麼是 RESTful API 之前,讓我們先說明一下您應該關心的原因。多年來,相繼湧現數百種使用相同語言的網路來連接電腦的方法。這些方法或「傳輸協定」的演變,導致人們接受的堆疊都必須遵守這些標準,而每個標準又以特定的方法來處理電腦通訊。在這堆疊的頂部是應用程式層和顯示層,這些層是業務邏輯和從中產生的數據進行交流的地方。

REST 就位於這個堆疊上,能夠讓人類更容易理解正在交流的內容,同時允許多台電腦有效地相互交談。您可能聽說過一些可以駐留在此處的其他技術,例如 SOAP(它需要大量數據和運算能力,並不真的適合資源受限的行動應用程式)、JMS(專門用於 Java 應用程式)和 XML-RPC(它有許多與 SOAP 相同的問題,也沒有任何標準化的好處)。

API 產品經理的終極成功指南
API 產品經理的終極成功指南
這份成功指南分 7 部份引導公司建立 API 程式,利用 APIs 的力量來發展數位業務!

REST 使用與定義 Web 相同的完善機制,也沒有較大型傳輸協定所造成的障礙,因此只需傳遞最少量的數據。這讓程式人員能夠更快建立程式,而當這些程式透過 API 來存取公開的數據並據以行動時,即使在網路速度不穩和運算能力有限的環境中,它們仍能順暢完成作業。

REST 的運作方式跟您瀏覽器中的網站幾乎一模一樣,經由 URL 將資源所在處暴露給程式,讓程序可以存取該 URL 並接收與該資源有關的數據,不就像您在瀏覽器中輸入 URL 然後傳回網頁一樣嘛。設計完善的 RESTful API 會內含一些附加連結,讓程式可以追蹤請求相關資訊(類似於您點擊連結後造訪新頁面),或用來提交數據以更新既定資源(類似於您建立網站新帳戶時所填寫的網路表格)。

這種靈活度的代價,就是缺乏嚴格的標準。REST 確實可以描述數據的傳輸方法,但實作者主要是靠自己弄清楚這些數據應該長什麼樣子。不過因為透過網路存取數據的行動設備數量不斷增加,所以這個情況正在迅速改變,但要將這些格式合併成像真正的標準那樣,可能還需要一段時間。