什麼是 REST API?
REST API(表現狀態傳輸應用程式介面) 是一套允許不同軟體系統透過網際網路進行通訊的規則。將 API 想像成連接兩個系統的橋梁,允許它們請求和分享資訊。
Let’s break down the components of a REST API:
- API(應用程式介面):API 就像是餐廳的菜單。它提供客戶端可以請求的操作清單,而伺服器 (就像廚師) 則執行這些操作並傳回回應。
- REST(表現狀態傳輸):REST 是一套透過 HTTP 建立網路服務的準則,使用 GET、POST、PUT 和 DELETE 等標準作業。
REST API 如何運作?
REST API allows clients (like your browser or an app) to send requests to servers and receive data in return. Let’s break down how it works step by step:
- 客戶要求:客戶端(您的應用程式)向伺服器上的特定 URL 傳送 HTTP 請求。此 URL 代表資源 (例如使用者、產品等)。
- 範例:GET
https://api.example.com/users
請求使用者清單。
- 範例:GET
- 伺服器處理:伺服器接收請求、處理請求、擷取資料(通常來自資料庫)並準備回覆。
- 伺服器回應:伺服器傳送 HTTP 回應給用戶端。此回應包括
- 狀態代碼: To indicate if the request was successful (e.g., 200 OK for success, 404 Not Found if the resource doesn’t exist).
- 資料:通常以 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 驗證
When working with cookie authentication, you can use the WordPress logged-in user’s session cookies to access the REST API. Here’s a step-by-step example of how it works:
- 使用者登入 The user logs in to your WordPress site, and WordPress sets an authentication cookie in the user’s browser.
- 傳送要求:當您的 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 是一個強大的工具,了解如何使用它,將為網頁開發開啟無限的可能性。