幾周前,Jeff 花了兩天將自己的WordPress 網(wǎng)站做了個(gè)微信小程序版本(詳細(xì)見該文)。這篇文章主要記錄自己在開發(fā)第一版的過程,順便為有興趣的你剖析如何將一個(gè)WordPress 網(wǎng)站借助 REST API 開發(fā)微信小程序版。本文目標(biāo)受眾為了解WordPress 且有初級(jí)前端知識(shí)的同學(xué)。
原理篇
WordPress 與 REST API
WordPress 在4.6 版本后推出了 REST API, REST API 簡(jiǎn)單來說就是一種通過 HTTP 請(qǐng)求來獲取、更新、刪除數(shù)據(jù)的一種連接客戶端與服務(wù)端的交互方式。我們?cè)L問平常的普通 WordPress 網(wǎng)頁,在沒有開啟靜態(tài)緩存的情況下,大概是走“從數(shù)據(jù)庫(kù)拉取數(shù)據(jù)—> 服務(wù)端 PHP 進(jìn)程拼成 HTML 直接輸出 —> 用戶瀏覽器界面”的過程, REST API 也是類似步驟,但后面兩步稍微不同:輸出的是 JSON 格式的數(shù)據(jù)且一般是給客戶端使用。有了REST API,一個(gè)網(wǎng)站制作各種網(wǎng)站版本(安卓版、iOS 版、以及接下來說的小程序版)而共享一個(gè)數(shù)據(jù)庫(kù)成為了可能。
(原圖來自wisdmlabs,稍作修改)
以本站為例,可通過瀏覽器直接訪問REST API 的其中一種URL:https://devework.com/wp-json/wp/v2/posts?per_page=5&page=1 (如果你現(xiàn)在直接訪問是403 報(bào)錯(cuò),那是我為了安全而設(shè)置的攔截,請(qǐng)自行替換為自己網(wǎng)站的域名),你可能會(huì)看到如下圖左側(cè)的界面;如果你使用Chrome 瀏覽器且安裝JSONView 插件則為下圖右側(cè)的界面。
且讓Jeff 將上面的URL 解釋下,/wp-json/wp/v2/ 這個(gè)是WordPress 定義的REST API 的“路由”(router)與版本號(hào)等的組合,posts 在WordPress中稱為“終點(diǎn)” (endpoint),