WordPress REST API 簡介

已發表: 2022-10-19

2016 年 12 月,隨著 WordPress 4.7 的發布,一個爭論已久的里程碑到來了:WordPress REST API 被正式包含為 WordPress Core 的一部分。

儘管 REST API 在正式合併到核心之前就已經作為插件存在,但它隨後的包含引發了相當多的爭論,人們對它的包含和進一步測試的必要性提出了爭論。

最終,REST API 被合併到 Core 中,現在為塊編輯器以及許多第 3 方集成和與網絡上 WordPress 網站的接口提供支持。

然而,對於許多 WordPress 用戶來說,這是他們第一次聽說任何類型的 REST API,更不用說與 WordPress 如此緊密集成的 API 了。

因此,在本文中,我們將了解什麼是 REST API,WordPress REST API 的獨特之處,以及它如何工作的一些示例,以及它包含在 WordPress 中後啟用的一些技術類型核。

什麼是 REST API?

術語 REST API 實際上是兩個首字母縮略詞合二為一,在理解 WordPress REST API 的工作原理和作用時兩者都很重要。

什麼是休息?

第一部分,REST,代表代表性狀態轉移。 盡可能簡單地說,這是一個規範,它定義了網絡上兩個獨立的資源應該如何相互通信。 這兩個界面可能是兩個不同的網站、一個網絡服務器、一個移動應用程序等等。

遵循此規範的服務通常被稱為 RESTful 服務,並致力於確保請求信息的客戶端不必知道有關服務器狀態的任何信息,以及客戶端和服務器如何比其他服務更加模塊化和分離通過 Internet 傳輸數據的方法。

從本質上講,如果開發人員知道他們正在與 RESTful 服務交互,他們就可以對他們的請求將如何格式化以及他們將收到什麼樣的數據作為回報做出某些假設,這在開發互連技術時非常有用。

如果您想更深入地了解什麼構成了 RESTful 服務以及這些類型的請求是如何發出的,我強烈建議您查看 Codecademy 的文章什麼是 REST?

什麼是 API?

API 代表應用程序編程接口,顧名思義,它為 Web 上的其他客戶端和服務提供了一個與特定應用程序交互的接口。 它指定可以發送數據的端點,通常是 URL,這些 URL 是否返回任何數據或在服務器上創建資源,以及是否需要任何特定類型的身份驗證才能訪問這些端點。

對於當今網絡上的許多流行服務,API 提供了一種自動化的方式來完成用戶可以手動執行的操作,方法是允許腳本或代碼片段在用戶在場的情況下執行相同的操作。 例如,如果您使用 Reddit 並發現自己在瀏覽的許多線程上寫了相同類型的評論,您可以創建一個腳本來搜索 Reddit 以查找這些類型的評論並通過 Reddit 的 API 自動發布您的標準回复。

通過 API 公開他們的基礎設施,用戶不必依賴脆弱的網絡抓取方法來自動執行這些類型的任務,Reddit 可以跟踪誰通過他們的 API 訪問他們的資源,他們這樣做的頻率,並控制用於超出其服務條款的用途。

為什麼 WordPress 需要 REST API?

如果您在 REST API 成為核心的一部分之前曾向 WordPress 發出過類似 API 的請求,您可能熟悉 admin-ajax 的概念。 這是在 WordPress 中發出此類請求的原始方式,其中每個請求都通過 admin-ajax.php 文件進行路由,檢查任何活動插件或主題的開發人員已註冊的任何特定操作,然後使用這些已註冊的功能來滿足要求。

正如您所預料的那樣,這意味著每個使用類似 API 請求的開發人員都將此功能作為其插件或主題的一部分啟用,但操作方式略有不同,任何想要與此功能交互的人都必須熟悉每個插件或主題的使用方式建成。 引入 WordPress REST API 是為了標準化發出這些請求的方式,並提供一組範圍更廣的端點,這些端點可用於與 WordPress Core 本身進行交互。

對 WordPress REST API 的示例請求

WordPress REST API 手冊維護了開箱即用的 WordPress REST API 支持的端點的完整列表。 雖然擁有一個完整的列表很好,但它可能有點讓人不知所措。 讓我們來看看什麼可能被認為是任何 API 交互的最基本功能:獲取 API 的基本資源。 對於 WordPress,該資源已發布。

所有 WordPress REST API 的端點都以 URL 路徑wp-json為前綴,位於根域和 REST API 手冊所指的Base Route之間。 這意味著如果我們訪問端點以列出站點的帖子並且我們站點的 URL 是example.com ,我們將需要向 URL https://example.com/wp-json/wp/v2/posts發出請求https://example.com/wp-json/wp/v2/posts

通過簡單地在您最喜歡的網絡瀏覽器中加載該 URL 或使用 API 瀏覽器(例如​​ Postman)發出 GET 請求,應該會從 API 返回一個帖子列表,儘管它們可能不是您使用的格式到。 如果您看到的只是一長串文本,那麼您正在查看一種稱為 JSON 的數據格式。 如果您通過瀏覽器訪問 API 端點並希望以更易讀的格式查看此信息,我建議安裝 JSON Viewer 擴展。 這將檢測瀏覽器中的任何 JSON 輸出並對其進行格式化,以便您可以更輕鬆地閱讀它。 安裝後,您應該會看到 WordPress REST API 輸出的帖子數據,並且您已成功發出第一個 REST API 請求!

在安裝了 JSON 查看器擴展的瀏覽器中查看來自 WordPress REST API 的數據的示例

WordPress REST API 還能做什麼?

除了在 WordPress 站點上獲取最新帖子列表外,查看 Endpoint Reference,您會發現還有大量其他方式可以與 WordPress REST API 進行交互。 如果您已通過 WordPress 用戶身份驗證,則可以通過 API 發布帖子、獲取網站可用的主題列表、查看和編輯設置以及可通過 wp-admin 手動交互的許多其他功能.

WordPress REST API 的一些實際應用示例

通過 REST API 公開與 WordPress 交互的能力開闢了現在可以使用 WordPress 作為內容管理後端的網站的廣泛可能性。

TechCrunch :在 WordPress REST API 宣布後不久,TechCrunch 宣布它已經使用無頭架構重建其網站,這意味著他們在後端使用 WordPress 作為內容管理系統,同時仍然能夠使用“單頁”樣式 React 應用程序”在前端。

Block Editor (Gutenberg) :也許大多數人受益於 REST API 的用法是 WordPress Block Editor。 現在是 WordPress 中的主流編輯器,塊編輯器的大部分功能都是通過它可以與 WordPress REST API 端點交互而無需

各種各樣的社區項目:當 REST API 第一次被考慮合併到一個核心時,一個公開的電話出去要求人們更多地談論他們是如何使用 REST API 的。 答案非常廣泛,您可以從像 WordPress 這樣大的社區中得到答案,但包括從具有比以前更多交互界面的插件到為客戶構建可以使用 WordPress 內容的移動應用程序的所有內容。

包起來

即使您沒有任何使用 API 的經驗,您也可能在您職業生涯的某個時刻使用過依賴 WordPress REST API 來運行的東西。 隨著界面繼續變得更加動態,網站開始有更多不需要頁面加載的操作。

現在您知道什麼是 WordPress REST API,您可能正在考慮可以使用它構建的一些東西! REST API 絕對可以成為您工具箱中的強大工具,用於構建更好的 WordPress 主題和插件。

如果您需要更多說明或一些可能的示例,請查看文檔並直接進入!