Contents

什麼是 REST API 以及如何為您的應用程式或網站取得資料?

要點

API 透過接受輸入請求並提供適當的輸出回應,在實現各種軟體元件之間的無縫通訊方面發揮著至關重要的作用,從而簡化了跨不同系統存取和操作資料的過程。

RESTful API 利用統一資源識別碼 (URI) 作為存取和操作資源的方式,並使用各種請求動詞(例如 GET、POST、PUT 和 DELETE)來執行相應的操作,包括檢索、建立、修改和刪除資訊。

利用 JavaScript 中的「get」或 Python 中的「requests」等函式庫,開發人員可以建立能夠透過提供 API 金鑰和 URL 中的查詢從多個 RESTful API 檢索資訊的應用程式。

術語「API」代表應用程式介面的概念,它作為透過一系列定義的功能促進應用程式間通訊的媒介。本質上,當一個軟體程式透過 API 向另一個軟體程式發送請求時,它會收到相應且相關的答案。

REST(表述性狀態傳輸)是一種用於開發客戶端-伺服器應用程式的架構風格。它涉及透過利用 RESTful API 來獲取駐留在資料庫中的資料的描述。此外,這種類型的 API 以無狀態方式運行,這意味著伺服器在過渡期間不會保留與客戶端請求有關的任何資訊。

REST API 如何運作?

RESTful API 使用統一資源識別碼 (URI) 來檢索和操作數據,其中 URL 充當此類上下文中使用的 URI 的典型形式。

為了利用和修改資源,RESTful API 使用特定的請求動詞來存取和操作資源:

⭐Get€”從資料庫取得資料。

⭐Post€”將新資料加入資料庫。

⭐將更新資料放入資料庫中。

⭐刪除€”從資料庫中刪除資料。

利用大量可在線上存取的預先存在的 RESTful API 作為建立您自己的 API(而不是開發自訂解決方案)的替代方案,將您的選項限制為僅 GET 請求方法(透過 URL)。所討論的 URL 包含各種元素,但與您的需求最相關的元素包括必要的授權憑證和資料檢索所需的任何查詢參數。

在 RESTful 應用程式介面 (API) 平台註冊後,個人將獲得一個稱為 API 金鑰的單一識別碼。該鍵用作透過使用特定查詢或查詢來自訂搜尋的方法。例如,如果有人希望獲取有關紐約市當前氣候條件的信息,他們可以在其統一資源定位器 (URL) 的查詢部分中包含“city=New York”。

執行 GET 請求後,產生的回應包含狀態代碼和正文。如果請求已成功執行,回應正文將包含旨在在網站或應用程式中使用的所需資訊。

使用 JavaScript 應用程式從不同的 REST API 取得數據

為了開發這個 JavaScript 應用程序,需要在個人電腦上下載並安裝兩個獨立的軟體程式-即 NodeJS 和 npm。幸運的是,我們為 Ubuntu 和 Windows 作業系統的使用者準備瞭如何執行此過程的詳細指南。如果您想了解有關此主題的更多信息,請參閱我們各自的文章,其中概述了每個平台的分步安裝過程。

安裝上述軟體包後,需要執行以下操作:

請開啟您的整合開發環境 (IDE) 並在其中啟動終端。

若要存取保存 JavaScript 應用程式檔案的目錄,請在終端機或命令提示字元視窗中使用 cd 命令。這將允許您更改當前工作目錄並方便導航到所需位置。

⭐ 使用以下程式碼行初始化 npm:

 npm init -y 

該應用程式核心功能的實作依賴於一個名為「got」的特定 npm 模組,該模組充當 NodeJS 的 HTTP 請求庫。為了確保將 get 庫合併到應用程式檔案中,您可以使用提供的命令自動安裝其最新版本:

 npm install got@latest 

現在您可以自行決定建立您的應用程式。

使用 Got 庫建立您的應用程式

 // import the got library into your application
import got from 'got';

// fetch data from an API and prints its body to the terminal
(async () => {
  try {
    const response = await got(URL);
    const data = JSON.parse(response.body);
    console.log(data);
  } catch (error) {
    console.log(error.data);
  }
})();

上述應用程式可以從任何基於互聯網的 RESTful API 中提取資訊;然而,有必要預先提供相關資源的適當的統一資源定位符(URL)。

從天氣 REST API 取得數據

Weatherbit.io API 是最受歡迎的天氣 API 之一。將此 API 的 URL 插入到上面的簡單 JavaScript 應用程式中將使該應用程式可運行。

使用 Wea​​therbit.io REST API

 // import the got library into your application
const got = require('got');

// fetch data from an API and prints its body to the terminal
(async () => {
  try {
    const URL =
      'https://api.weatherbit.io/v2.0/current?lat=40.7128&lon=-74.0060&key=API_KEY';

    const response = await got(URL);
    const data = JSON.parse(response.body);
    console.log(data);
  } catch (error) {
    console.log(error.data);
  }
})();

Weatherbit.io API 的 URL 已整合到應用程式中。為了確保正常運行,必須修改 URL 中稱為「API\_KEY」的元素。此金鑰由 Weatherbit.io 在註冊免費帳戶時提供,並作為透過此 API 存取其服務的關鍵元件。

您可以選擇修改提供的程式碼中的查詢部分。目前,該程式檢索北緯40.7128度、西經-74.0060度地理座標的天氣資料;但是,如果需要,您可以靈活地輸入替代座標。雖然給定的實現被認為是合適的,但您也可以選擇根據特定城市的名稱搜尋天氣資訊。

在指定欄位中輸入 API 金鑰後,您現在有權執行 JavaScript 腳本。此介面應在命令提示字元上顯示類似以下結果的訊息:

/bc/images/weather-api-response-body-part1.jpg /bc/images/weather-api-response-body-part2.jpg

回應資料的某些關鍵元素值得注意,包括但不限於:

位於指定經緯度座標的城市由其名稱表示,作為更廣泛地理區域內該特定城市區域的唯一識別碼。

當前時間以協調世界時 (UTC) 表示,並以年、月和日期格式表示一天中的小時,使用數字和字母的組合來指示年和星期(例如“ 2023-04-15T08:30”)。

實體「天氣」表示一個複合結構,包括表示氣象條件的視覺符號、稱為天氣代碼的相應字母數字標識符以及當前或預測氣候狀態的口頭表示。

從新聞 REST API 取得數據

本部分使用 Newsdata.io API 。與網路上的所有 REST API 一樣,它提供了多個查詢選項,您可以使用它們來檢索來自世界各地的突發新聞。透過 Newsdata.io API ,您可以獲得來自特定國家或特定語言、類別等的新聞。

透過使用 JavaScript 應用程序,只需將應用程式中提供的 URL 替換為下面指定的 URL,即可從新聞 RESTful API 獲取資訊:

 'https://newsdata.io/api/1/news?apikey=YOUR_API_KEY&country=us'

為了使用Newsdata.io API 存取來自美國的突發新聞,必須用其唯一的API 金鑰替換指定URL 中的「YOUR\_API\_KEY」佔位符,在Newsdata.io 成功註冊後將獲得該密鑰。透過將“國家”參數從“us”更改為“jp”,可以檢索來自日本的新聞文章。

隨後的資料有效負載將包含一系列實例,每個實例都封裝與美利堅合眾國境內發生的當前事件有關的相關資訊。在這種特殊情況下,集合的初始元素應作為我們進一步分析和討論的出發點。

/bc/images/news-api-response-body-part1.jpg /bc/images/news-api-response-body-part2.jpg

使用 Python 應用程式從不同的 Rest API 取得數據

使用您精通的任何程式語言都可以獲得網站或軟體程式的資料。因此,如果您不想使用 JavaScript,則可以透過實施基於 Python 的解決方案來獲得相同的結果。這可能涉及透過其流行框架之一建立 Python 應用程式介面 (API),或使用簡單的腳本從現有的表述性狀態傳輸 (REST) API 檢索資訊。

為了在Python中使用requests庫,需要使用pip套件管理器並安裝上述模組。安裝後,人們可以透過實作提供的程式碼來開發他們的程式。

 # import the requests library
import requests

# grabbing data using the requests library
URL = 'https://newsdata.io/api/1/sources?apikey=YOUR_API_KEY=us'
res = requests.get(URL)
json = res.json()

for key in json:
    print(key, json[key])

為了利用應用程式介面 (API) 的功能,需要將您的唯一識別碼(API 金鑰)合併到指定欄位中。這將產生一個回應對象,該對象與 JavaScript 實作產生的輸出非常相似,其中包含適合處理和分析的格式的資料。

/bc/images/news-api-response-body-python.jpg

為您的網站或應用程式取得資料非常簡單

有了足夠的資源,就必須認識到 REST 架構方法在促進各個元件之間解耦方面的好處。這種方法的多功能性使開發人員能夠利用各種程式語言,同時從各種線上可用的 RESTful API 存取資料。

在嘗試獲取應用程式所需的精確資訊時,必須認識到 API 金鑰和查詢的重要性。