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