掌握 WordPress REST API:驗證與整合
什麼是 REST API?
REST API(表現狀態傳輸應用程式介面) 是一套允許不同軟體系統透過網際網路進行通訊的規則。將 API 想像成連接兩個系統的橋梁,允許它們請求和分享資訊。
讓我們來分解 REST API 的元件:
- API(應用程式介面):API 就像是餐廳的菜單。它提供客戶端可以請求的操作清單,而伺服器 (就像廚師) 則執行這些操作並傳回回應。
- REST(表現狀態傳輸):REST 是一套透過 HTTP 建立網路服務的準則,使用 GET、POST、PUT 和 DELETE 等標準作業。
REST API 如何運作?
REST API 允許用戶端(如您的瀏覽器或應用程式)向伺服器傳送請求,並接收資料作為回報。讓我們逐步分析其運作方式:
- 客戶要求:客戶端(您的應用程式)向伺服器上的特定 URL 傳送 HTTP 請求。此 URL 代表資源 (例如使用者、產品等)。
- 範例:GET
https://api.example.com/users
請求使用者清單。
- 範例:GET
- 伺服器處理:伺服器接收請求、處理請求、擷取資料(通常來自資料庫)並準備回覆。
- 伺服器回應:伺服器傳送 HTTP 回應給用戶端。此回應包括
- 狀態代碼:表示請求是否成功(例如,200 OK 表示成功,404 Not Found 表示資源不存在)。
- 資料:通常以 JSON 格式表示請求的資源。
基本驗證: 它是什麼,為什麼重要?
基本驗證 是用戶在請求 API 時驗證身份的簡單方法。在此方法中,用戶端會傳送編碼在請求標頭裡的使用者名稱和密碼,然後由伺服器驗證。
為什麼它很重要?:驗證可確保只有授權使用者才能存取資源,防止未經授權的使用者取得存取權。
如何運作?:當用戶端向伺服器傳送要求時,它會包含一個 授權
標頭,其中包含以 Base64 編碼的憑證。
範例:
授權:Basic dXNlcm5hbWU6cGFzc3dvcmQ=
伺服器會解碼此標頭,並檢查使用者名稱和密碼是否有效。
WordPress REST API 的驗證方法
當使用 WordPress REST API, 有幾種認證方法可以用來確保要求的安全性:
1:基本驗證
- 此方法通常用於測試和簡單的應用程式。您在請求頭中傳送您的 WordPress 使用者名稱和密碼。
- 外掛程式提示:要在 WordPress 中使用基本驗證,您可以使用 基本驗證外掛程式.基於安全考量,此方法不建議用於生產環境。
2:Cookie 驗證
- 當您希望目前登入的使用者存取 API 時,會使用 Cookie 認證。當使用者登入 WordPress 時,會建立一個 session cookie,API 會使用此 cookie 來驗證使用者。
- 使用個案:這通常用於與 WordPress 網站在同一網域上執行的前端 JavaScript 應用程式。
3:OAuth 驗證
- OAuth 是一種更安全的方法,可讓第三方應用程式代表使用者存取 WordPress REST API,而無需分享使用者的密碼。
- 範例外掛程式:您可以使用 WordPress 的 OAuth 1.0a 伺服器外掛程式來實施基於 OAuth 的驗證。
4:應用程式密碼
- WordPress 也支援 應用程式密碼,這是 API 存取的唯一密碼。您可以在 WordPress 面板中產生應用程式密碼,這些密碼可用於驗證。
- 如何產生:前往 WordPress 中的使用者個人資料,向下捲動至「應用密碼」部分,然後產生新密碼。
使用 WordPress REST API 進行最大化開發
WordPress REST API 可以讓您從 WordPress 面板之外與您的 WordPress 網站互動,從而創建功能強大的 Web 應用程式。以下是如何讓您發揮最大的開發效益:
1:自訂端點: 您可以建立自訂端點,從 WordPress 網站揭露預設可能無法取得的其他資料。
- 如何建立:使用
register_rest_route()
函數在您的 WordPress 主題或外掛中加入新的端點。
範例:
add_action('rest_api_init', function() {
register_rest_route('myplugin/v1', '/custom-data/', array(
'methods' => 'GET'、
'callback' => 'my_custom_data_callback'、
));
});
function my_custom_data_callback() {
return new WP_REST_Response(array('data' => 'Hello, world!'), 200);
}
2:JavaScript 整合: 使用 JavaScript 向 REST API 傳送請求,以建立動態、互動的使用者體驗。例如,您可以建立一個 React 或 Vue.js 應用程式,透過 REST API 與 WordPress 後端互動。
實例:試想一下,建立一個自訂的評論系統,使用者不需重新載入頁面即可發表評論,而這一切都透過 JavaScript 與 REST API 進行互動。
使用 JavaScript 傳送驗證請求
要使用 JavaScript 傳送驗證的要求,您必須在要求標頭中包含正確的憑證或識別碼。例如
fetch('https://api.example.com/users', {
method: 'GET'、
headers:{
'Authorization': 'Basic ' + btoa('username:password')、
'Content-Type': 'application/json'.
}
})
.then(response => response.json())
.then(data => console.log(data));
在本範例中,btoa() 函式以 Base64 編碼憑證,用於主要驗證。
Cookie 驗證
當使用 cookie 驗證時,您可以使用 WordPress 登入使用者的會話 cookie 來存取 REST API。以下是如何運作的逐步範例:
- 使用者登入 使用者登入您的 WordPress 網站後,WordPress 會在使用者的瀏覽器中設定認證 cookie。
- 傳送要求:當您的 JavaScript 程式碼要求 REST API 時,瀏覽器會在要求標頭中包含 cookie,WordPress 就會知道是哪個使用者提出要求。
使用 WordPress HTTP API 傳送請求
您也可以使用 WordPress HTTP API 從您的 WordPress 網站傳送請求。HTTP API 是 WordPress 提供的一套功能,用來與 REST API 互動。
傳送 GET 請求的範例:
$response = wp_remote_get('https://api.example.com/users');
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
$body = wp_remote_retrieve_body($response);
echo $body;
}
本範例使用 wp_remote_get() 函式傳送 GET 請求到外部 API 並擷取回應。
摘要
在本指南中,我們涵蓋了
- 什麼是 REST API、 以及它如何允許不同的系統進行溝通?
- REST API 如何運作包括如何提出和處理請求。
- 驗證方法例如基本驗證、cookie 驗證、OAuth 和應用程式密碼,以及它們為何不可或缺。
- WordPress REST API 驗證包括如何使用 JavaScript 和 PHP 傳送驗證的要求。
常見問題集:關於 REST API 和驗證的常見問題
- 我可以在沒有認證的情況下使用 REST API 嗎?
- 是的,但只適用於公開資料。對於任何敏感資料,您需要適當的驗證。
- 基本驗證是否安全?
- 基本驗證對於生產而言並不安全,因為憑證是編碼而非加密的。它更適合測試或透過 HTTPS 使用。
- 應用程式密碼是用來做什麼的?
- 應用程式密碼可驗證 API 請求,而無需分享您的 WordPress 主要密碼。它們有助於整合第三方應用程式。
下一步
- 實務驗證:嘗試在本機 WordPress 網站中實施不同的驗證方法。
- 建立自訂端點:嘗試在 WordPress 中建立自訂端點,以擴充 REST API 的功能。
- JavaScript 與 PHP 整合:練習使用 JavaScript (例如 fetch) 和 PHP (使用 WordPress HTTP API) 傳送要求。
- 使用 Postman 進行測試:使用下列工具 郵差 來測試您的 REST API 端點,並練習傳送驗證的要求。
祝您編碼愉快,繼續探索!REST API 是一個強大的工具,了解如何使用它,將為網頁開發開啟無限的可能性。
Responses