輕鬆學習 Python:使用 Flask 創建 Web API

如何以 Web API 分享資料

Yao-Jen Kuo
數聚點文摘

--

An API may be for a web-based system, operating system, database system, computer hardware, or software library.

Application programming interface — Wikipedia

摘要 TL; DR

Web API 是透過網站應用程式達成讓資料與應用程式功能在不同工作環境中共同分享的工具,在這個小節中我們簡介如何以 Python 的框架 Flask 在本機(localhost)設置簡單的 Web API,藉此讓慣常使用其他程式語言的使用者能更簡便地取得經過清理整併的結構化資料或模型輸出參數。

關於 API

API(Application Programming Interface) 指的是一段程式碼與作業系統、與其他段程式碼彼此之間溝通的管道,如果我們曾經聽過這個名詞,有很高機率它指的其實是特定類型 API,像是建構於網站應用程式的 API、作業系統的 API、資料庫系統的 API、電腦硬體的 API 或者軟體應用程式的 API。在這個小節我們專注在建構於網站應用程式的 API 類型,即 Web API。

試想在一個資料科學團隊中,不同角色依據職務屬性,有著各自慣用的開發環境與程式語言,像是熟悉寫作 R、Julia 的統計學家、熟悉寫作 Python、Scala 的資料工程師、熟悉寫作 JavaScript 的商業儀表板前端工程師,在一個需要彼此合作的專案中,Web API 可以有效地讓各個工作流透過網路呼叫彼此的程式並回傳結果。

使用 Web API 的好時機

Web API 是讓團隊其他成員與使用者分享資料的其中一種方式,並不是唯一方式、也不一定是最佳方式。如果我們所提供出來的資料較小且不會頻繁隨時間而更動,提供靜態的 JSON、XML 或 CSV 等常見文字格式資料集可能是更好的選擇,然而當資料具備下列特性時,使用 Web API 分享就顯得比使用文字格式資料集提供下載來得更好。

  • 資料更新的速度快、頻率高,生成靜態資料集檔案過於緩慢
  • 使用者可能只需要龐大資料中的一個子集(subset)
  • 資料具備重複運算的特性(例如 rolling stats)

Web API 相關術語

--

--