
Python 輕松實現(xiàn)天氣提醒:通過天氣實況 API 獲取城市氣溫
盡管WordPress Rest API是一個相對較新的功能,但它已經(jīng)改變了WordPress作為一個平臺的能力,因為它現(xiàn)在使開發(fā)人員能夠輕松地將WordPress與其他軟件和網(wǎng)站連接起來。
在本指南中,我們將解釋什么是 API 和 REST。然后,我們將探索開發(fā)人員如何使用 WordPress REST API 來繞過其限制。
如果您不熟悉 API 和 REST,那么該定義可能還不完全有意義。因此,讓我們簡要介紹一下什么是 API 和 REST API,以及它們在這里為什么重要。
應用程序編程接口 (API) 是允許外部應用程序與其通信的軟件的一部分。API 公開應用程序的一部分數(shù)據(jù)和功能,從而支持第三方應用程序進行集成。
例如,假設您想在您的網(wǎng)站上展示 YouTube 視頻。由于視頻歸 YouTube 所有并存儲在 YouTube 服務器上,因此您可以通過 YouTube 的 API 請求視頻。API 收到并批準您的請求后,會將視頻發(fā)回給您,您可以根據(jù)需要嵌入它。
或者,假設您希望您的應用程序將視頻上傳到 YouTube — YouTube 的 API 也允許您執(zhí)行此操作。但這一次,您發(fā)出了不同的請求,要求上傳您的內容。如果 API 批準,則視頻無需您登錄 YouTube 用戶帳戶即可上傳。
API 使當今的軟件生態(tài)系統(tǒng)成為可能。通過 API,不同的軟件應用程序可以以自動化和標準化的方式集成和共享數(shù)據(jù)。
API 是開發(fā)人員將網(wǎng)站連接到 Google 地圖并在其網(wǎng)站上包含實時地圖的方式。因此,他們不必從頭開始,編寫地圖代碼并收集所需的大量數(shù)據(jù)。相反,通過在現(xiàn)有框架的基礎上進行構建,每個人的生活都會更輕松。
無論是安排社交媒體帖子的自動化軟件,還是手機上的天氣應用程序,您最喜歡的大多數(shù)應用程序都以某種方式使用 API。
當我們談論 Web 上的 API 時,我們通常談論一種稱為 REST API 的 API。REST 是 Representational State Transfer 的縮寫,是一組用于構建 Web API 的準則。遵循這些準則的 API 是 REST API(或 RESTful API)。
查看我們專門的 REST API 帖子,更詳細地了解 REST API。但是,現(xiàn)在,我們可以簡要總結一下 REST API 的五個要求,因為這些要求決定了WordPress REST API的工作方式。這些要求是:
這些約束標準化了網(wǎng)絡應用程序之間的對話方式。它們確保與任何REST API的交互都遵循類似的過程,同時保持兩個應用程序的獨立性,以便任何一個應用程序的更改或升級不會影響它們之間的通信。
顧名思義,WordPress REST API 是一個 REST API,因此它按照上面列出的指南運行。
具體來說,WordPress REST API 向外部開發(fā)人員公開了 WordPress 的內部工作原理,這使得以多種方式將 WordPress 與其他應用程序集成成為可能。由于 REST 在 Web API 中非常普遍,因此 WordPress REST API 對于任何開發(fā)人員來說都相對容易學習和使用。
WordPress REST API 最初是作為開源 WordPress 插件開發(fā)的,在 2016 年發(fā)布的 4.7 版中被添加到 WordPress 核心中。
這是 WordPress 的重要一步,有效地將其轉變?yōu)橐粋€軟件平臺?,F(xiàn)在,開發(fā)人員可以使用 WordPress 進行構建,而無需在 WordPress 中進行構建。
例如,您可能希望從頭開始構建一個 Web 應用程序,但利用 WordPress 的內容管理和文章起草功能。使用 WordPress REST API,您可以從您的 WordPress 賬戶獲取帖子內容并將其發(fā)布到您的自定義 Web 應用程序上?;蛘撸梢詫?WordPress 連接到您正在使用 REST API 構建的移動應用程序。您可能熟悉 Gutenberg 塊編輯器 — 這是一個使用 WordPress REST API 檢索和修改 WordPress 數(shù)據(jù)庫中內容的 Web 應用程序的真實示例。
WordPress REST API 還為開發(fā)人員提供了強大的靈活性。如果沒有它,開發(fā)人員將需要使用 PHP(WordPress 的服務器端腳本語言)修改 WordPress?,F(xiàn)在,開發(fā)人員可以在 WordPress 的限制之外進行編程,并使用其他語言進行工作,例如前端編程語言 JavaScript。
最后,請注意,WordPress REST API 是由 WordPress 維護的幾個 API 之一。
這些其他 WordPress API 的存在主要是為了允許插件和主題與 WordPress 核心進行交互。
REST API 靈活、可擴展且易于實施。以下是更詳細的每種方法的好處。
在我們嘗試發(fā)布和接收 WordPress 數(shù)據(jù)之前,讓我們回顧一下在使用 WordPress REST API 之前需要了解的一些關鍵術語。
首先,請求是您發(fā)送到 WordPress REST API 的內容。它指定了你想要定位的 WordPress 數(shù)據(jù)庫中的資源以及你想用它做什么。
響應是 API 在您發(fā)出請求后發(fā)回的內容。它包含您請求的任何數(shù)據(jù),以及請求是否成功的確認或錯誤消息。
路由是用于通過 WordPress API 查找資源的 URL,例如文章、頁面、元數(shù)據(jù)、用戶或其他數(shù)據(jù)類型。例如,路由 “http://yourwebsite.com/wp-json/wp/v2/pages” 用于訪問 WordPress 網(wǎng)站上的頁面。
路由在終端節(jié)點中用于通過 API 訪問或修改數(shù)據(jù)。終端節(jié)點將路由與稱為 HTTP 方法的命令組合在一起。您可能最常使用的四種 HTTP 方法是:
例如,從 yourwebsite.com 檢索所有 WordPress 頁面的終端節(jié)點如下所示:GET http://yourwebsite.com/wp-json/wp/v2/pages
向 yourwebsite.com 添加新頁面的終端節(jié)點如下所示:
POST http://yourwebsite.com/wp-json/wp/v2/pages
WordPress 開發(fā)人員參考列出了所有 REST API 的路由和端點,它們允許您訪問和操作 WordPress 網(wǎng)站上幾乎任何內容。您與 WordPress API 的大部分(如果不是全部)交互都將使用這些端點。
根據(jù)您使用 REST API 的方式,您可能還需要提供身份驗證才能發(fā)出請求。對于許多請求,WordPress 需要首先驗證您是誰。默認情況下,您可以使用 API 訪問您網(wǎng)站上的大多數(shù)公共內容,而無需進行身份驗證,而訪問私有數(shù)據(jù)則需要身份驗證。
了解了基本術語后,我們現(xiàn)在了解了足夠的知識,可以向 REST API 發(fā)送簡單的請求。我們不建議在您的實時網(wǎng)站上測試 REST API,而是在服務器上或本地設置測試網(wǎng)站以發(fā)出請求。
發(fā)出手動 API 請求的最簡單方法是通過命令行界面 (CLI),該程序可用于將基于文本的命令寫入計算機的操作系統(tǒng)。在 Windows 上,默認的 CLI 程序是 Command Prompt。在 macOS 上,它稱為 Terminal。
要從命令行與 API 通信,您可以使用 cURL,這是一種用于發(fā)出 HTTP 請求(以及許多其他類型的請求)的免費工具。您也可以嘗試 WP-CLI,這是一個專門用于 WordPress 的免費命令行界面,可讓您在不使用瀏覽器的情況下與您的 WordPress 網(wǎng)站進行交互。
使用 SSH,使用 cURL 或 WP-CLI 訪問您的遠程或本地測試站點。如果出現(xiàn)提示,請輸入您的憑證進行身份驗證。
訪問測試站點后,您可以開始發(fā)送請求。API 請求的基本路由為:
http://yourwebsite.com/wp-json/
其中 “yourwebsite.com” 是您的域。您將在此 URL 的末尾添加子目錄以請求特定數(shù)據(jù)。
讓我們從前面的示例開始,從您的 WordPress 網(wǎng)站獲取所有頁面。此操作的終端節(jié)點為:
GET http://yourwebsite.com/wp-json/wp/v2/pages
相反,如果你想檢索一個特定的頁面,你可以通過在路由的末尾添加頁面 ID 來實現(xiàn):
GET http://yourwebsite.com/wp-json/wp/v2/pages/<id>
其中 <id> 是頁面的數(shù)字 ID。
接下來,讓我們試驗 POST 方法。我們可以使用 POST 使用以下語法向網(wǎng)站添加新頁面:
POST http://yourwebsite.com/wp-json/wp-json/wp/v2/pages
這會向您的網(wǎng)站添加一個空白頁面,您可以在其中填充內容。
如果您想獲取有關 WordPress 帳戶中特定用戶的信息怎么辦?這也可以通過一個簡單的請求來實現(xiàn):
GET http://yourwebsite.com/wp-json/wp/v2/users/<id>
其中 <id> 是用戶的數(shù)字 ID。
我們只是觸及了這里可能的皮毛——為了充分利用 WordPress REST API,您的請求將變得更加復雜。但是,如果您只是掌握 WordPress API 和一般 API 的竅門,那么值得練習更直接的請求以扎實掌握基礎知識。
我們已經(jīng)了解了開發(fā)人員如何通過 WordPress 的 REST API 請求信息和進行更改——現(xiàn)在,讓我們看看這個 API 的一些實際示例。
WordPress Gutenberg 編輯器應用程序實現(xiàn) WordPress REST API 來訪問頁面和帖子信息。它從 WordPress 數(shù)據(jù)庫中獲取頁面和帖子數(shù)據(jù),包括文本和媒體,并允許您使用塊放置內容 — 這是 API 工作的一個簡單示例。
AppPresser 允許用戶創(chuàng)建與 WordPress 網(wǎng)站集成的 iOS 和 Android 移動應用程序。它調用 WordPress REST API 從 WordPress 檢索內容,并根據(jù)您的移動應用程序修改數(shù)據(jù)庫內容。
在 WordPress REST API 作為 WordPress 核心的一部分發(fā)布后不久,流行的技術出版物 Wired 使用該 API 制作了其主站點的同步副本以進行測試。每當主網(wǎng)站更新其內容時,測試站點都會更改以匹配。
Event Espresso 是一個使用 WordPress REST API 的 WordPress 活動管理和票務插件。通過附加組件,網(wǎng)站所有者可以將事件信息提供給開發(fā)人員,以供外部應用程序和網(wǎng)站使用。
WordPress REST API 非常適合兩種突出的情況。
首先,將 WordPress 集成到您正在使用的應用程序或網(wǎng)站(本身不是用 WordPress 制作的)中是有幫助的。
其次,您可以使用 PHP、JavaScript 或任何選擇的語言創(chuàng)建主題和插件,然后使用 WordPress Rest API 訪問所需的數(shù)據(jù)。
但是,在某些情況下,此 API 不是必需的。也就是說,如果您想使用 PHP 開發(fā)主題或插件,請嘗試利用 WordPress 的其他 API,例如Plugin API??和Theme Customization API。
網(wǎng)站所有者還可以通過合適的 WordPress 主題和廣泛的定制來完成很多工作。
簡而言之,雖然WordPress REST API并非總是最佳選擇,但當它適用時,它的強大功能是顯而易見的。正如WordPress API文檔所言:“如果你正在尋找一種結構化、可擴展且簡單的方式來從WordPress中獲取數(shù)據(jù),那么使用REST API可能是你想要的?!?/p>
要了解 WordPress CMS 的最新發(fā)展和適應情況,您至少需要了解其 REST API 的基礎知識。WordPress REST API 充當通往更大應用程序生態(tài)系統(tǒng)的網(wǎng)關。現(xiàn)在,不同的軟件可以在工具之外利用 WordPress 技術。
即使你不是開發(fā)人員,了解REST API的工作原理仍然有益,以防將來你決定將WordPress以某種方式集成到你的工具中。有了這些知識,你就能診斷問題、與開發(fā)者協(xié)作,甚至可能在未來自行進行自定義集成。
主題:WordPress 網(wǎng)站
原文鏈接:WordPress REST API 初學者指南 (hubspot.com)