首頁 > 後端開發 > Python教學 > 在 Python 中使用 API:實用指南

在 Python 中使用 API:實用指南

Susan Sarandon
發布: 2025-01-04 01:09:39
原創
655 人瀏覽過

摘錄:
「API 使軟體應用程式模組化。它們加快了軟體開發時間」。

應用程式介面(或 API)是一個抽象層,可實現不同軟體應用程式和元件之間的通訊。這種溝通是如何發生的? Web API 恰好是我們將在本文中詳細討論的內容,它位於客戶端使用的軟體應用程式和儲存資訊的資料庫之間。請在此處了解不同類型的 API。通訊的發生與編寫各個軟體應用程式所使用的程式語言無關;無論是 Python、Java、JavaScript 等。只要從軟體應用程式傳送到 API 的請求有效,無論是檢索、更新、刪除或建立操作。

想像一下像 Instagram 這樣的社群媒體平台,其中特定用戶發布了一張圖片,內部發生的情況是用戶正在向規定的 Instagram API 端點發出 POST 請求;發送圖片到資料庫。另一個用戶可以透過向 API 發出 GET 請求來查看該帖子,而在滾動時間軸時甚至不知道這一點。您會看到那裡存在透過 API 進行的通訊。

即使兩個使用者透過 API 使用不同語言編寫的軟體應用程式進行通信,情況也可能如此。
下圖顯示了兩個不同的軟體應用程式透過 API 進行通訊。

Working with APIs in Python: A Practical Guide

作者照片

此外,API 使軟體應用程式模組化。它們加快了軟體開發時間。模組化是指 API 實作與我們的程式碼庫分離,我們只需呼叫 API。它加快了開發時間,因為我們不必從頭開始編寫提供與 API 類似的功能的程式碼,我們只需呼叫它即可。

在本文中,您將學習如何使用 Python 使用公開可用的 API。敬請關注。

先決條件

本文適合初級 Python 程式設計師,他們希望透過 Python 中的具體實作來加深對 API 的理解。
要一起練習,請確保您的機器已連接到網路。

本文也可以作為經驗豐富的 Python 開發人員的複習工具。

目標

讀完本文後,您應該:
了解 Python 中的 requests 函式庫。
了解如何發出 GET、PUT、PATCH、DELETE 和 POST 請求。
了解如何在程式碼中儲存和利用從 API 呼叫接收的資料。

了解請求庫

requests 是下載次數最多的 Python 軟體包之一,根據 pypi 的數據,每週下載量約為 3000 萬次。它使您能夠在 Python 中輕鬆發送 HTTP 請求。 requests 是一個經過測試且值得信賴的 Python 包,被 IBM 等許多知名品牌所使用。在這裡找到原始碼。
要求的一些「受人喜愛」的功能是:

  • 保持活動狀態與連線池

  • 國際網域與 URL

  • 具有 Cookie 持久性的會話

  • 瀏覽器式 SSL 驗證

  • 自動內容解碼

  • 基本/摘要式驗證

  • 優雅的鍵/值 Cookie

  • 自動解壓縮

  • Unicode 響應體

  • HTTP(S) 代理支援

  • 分段檔案上傳

  • 串流下載

  • 連線逾時

  • 分塊請求

  • .netrc 支援

請求入門

我假設您的電腦上已經安裝了 Python。請按照以下說明安裝 requests 套件:
在 Linux 或 Mac OS 上開啟終端機並執行以下操作:

python3 -m pip install requests
登入後複製
登入後複製

在 Windows 上:

python -m pip install requests
登入後複製
登入後複製

這會將 請求套件下載到您的電腦。

發出 GET 請求

發出 GET 請求來檢索現有資料。它會傳回一個對象,可以進一步探索該對象,以透過呼叫其所需屬性來獲取有關所發出請求的更多詳細資訊。請參閱下面的範例用法:

  • 建立一個Python文件,例如get_request.py,在文件中寫入以下程式碼:
# Import the requests module
import requests

# Making a simple GET request
response_object = requests.get("https://jsonplaceholder.typicode.com/posts")

登入後複製
登入後複製

從response_object中,可以呼叫不同的屬性:
status_code: 回應的 HTTP 狀態碼。

  • .text:回應正文作為字串。
  • .json():將回應正文解析為 JSON(如果適用)。
  • .content:作為原始位元組的回應正文。
  • .headers:回應頭的字典。
  • .cookies:伺服器設定的Cookie。
  • .url:重定向後的最終URL。
  • .已過去 在本文中,我們將更專注於 .json() 屬性。 在 requests.py 檔案中,呼叫 response_object 上的 .json() 屬性
json_data = response_object.json()
print(json_data)
登入後複製
登入後複製

傳回的 JSON 儲存在 json_data 變數中,可以在您的程式中使用。
以下內容將輸出到您的控制台。

Working with APIs in Python: A Practical Guide

發出 POST 請求

POST 要求將資料傳送到指定端點,建立一條新記錄。與尋求檢索現有資料的 GET 方法不同。請依照以下步驟發出貼文請求:

  • 建立一個名為 post_request.py 或任何方便的名稱的新檔案。在文件中寫入以下程式碼:
python3 -m pip install requests
登入後複製
登入後複製

這會將資料傳送到規定的端點,並傳回一個回應物件;該物件擁有有關傳送的 POST 請求的一些有用資訊。可以透過呼叫物件上適當的屬性來存取它。
呼叫回應物件上的 status_code 屬性以確保操作成功。更新您的程式碼。

python -m pip install requests
登入後複製
登入後複製

它傳回 201,這表示您的 POST 請求成功並且已建立新資源。如下圖所示。

Working with APIs in Python: A Practical Guide

發出 PUT 請求

PUT 請求涉及用新記錄取代現有記錄;它從發送者或客戶端獲取新資料並用它替換現有資料。
這是發出 PUT 請求的方式:

  • 建立一個新的Python文件,在本文中,我們使用put_request.py。在其中寫入以下程式碼。
# Import the requests module
import requests

# Making a simple GET request
response_object = requests.get("https://jsonplaceholder.typicode.com/posts")

登入後複製
登入後複製

發出 DELETE 請求

這確保刪除特定記錄或資料。要刪除的記錄始終透過其唯一 ID 來指定,該 ID 通常是指定的。
這是執行 DELETE 操作的方式:

  • 建立一個新的 Python 文件,在本文中,我們使用 delete_request.py。在其中寫入以下程式碼:
json_data = response_object.json()
print(json_data)
登入後複製
登入後複製

發出 PATCH 請求

每當您想要對現有記錄或資料進行部分變更時,請使用 PATCH 方法。

  • 建立一個新的Python文件,在本文中,我們使用patch_request.py。在其中寫入以下程式碼:
# Import the requests module
import requests


# Making a simple POST request


data = {'userId': 1, 'id': 1, 'title': 'This is for POST request', \
        'body': 'This body is modified for this technical writing article by Augustine Alul'}
response_object = requests.post("https://jsonplaceholder.typicode.com/posts/", data=data)


print(response_object.status_code)

登入後複製

結論

requests 庫提供了一種在Python 程式碼中發出HTTP 請求的簡單方法;它可以輕鬆地與API 進行交互,並返回一個對象,該對象通過簡單地呼叫所需的屬性(可以在文章中找到這些屬性)來提供有關所發出請求的有用資訊。
在 Python 中使用 API 從未如此簡單 - 還有其他流行的庫可用於與 Python 中的 API 交互,但選擇 requests 庫是因為它的簡單性。
感謝您堅持閱讀本文的結尾,這為您開始使用 Python 中的 API 提供了良好的背景。

以上是在 Python 中使用 API:實用指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板