WordPress 貢獻者為 WP REST API 尋找前進的道路

已發表: 2016-02-09
圖片來源:Valeriy Poltorak
圖片來源:Valeriy Poltorak

上週末,圍繞 WP REST API 方向的討論仍在繼續,因為 Matt Mullenweg 和 Ryan McCue 都在他們的 WordPress 博客上澄清了上週狀態會議的聲明。 意見分歧引發了一場激烈的辯論,即什麼構成了 API 為核心做好準備的目標。

在一篇名為“雞和蛋”的帖子中,Mullenweg 談到了最近的 WP REST API 討論,同時分享了一本講述 90 年代中期嘻哈時代歷史的書中的軼事。

我喜歡 Questlove 意識到這首歌遺漏了什麼,然後回到展位繼續努力,直到它與他的目標聽眾產生共鳴。 將一首不能獨立存在的歌曲作為專輯的一部分捆綁起來也不會更好。 (或者三星將擁有 Android 上最受歡迎的應用程序。)粉絲們聽到每首曲目的關心和質量,他們成為超級粉絲。

Mullenweg 將其與構建 Web 產品時的注意事項聯繫起來:

我們生產的每樣東西都有這種張力。 1.0 是最孤獨和最低限度的可行產品之間的界限在哪裡? 或者它是關於最低限度的可愛產品? 我們是在造一輛沒有空調的汽車還是一輛沒有輪子的汽車?

'Pivot' 已經過時了,但更糟糕的是假設分發會解決你的產品的一些核心問題,這些問題是行不通的。

Mullenweg 在上週的會議上提到了同樣的汽車類比。 一位評論者要求對類比如何應用於 REST API 進行更多說明,對此,Mullenweg 表示如下:

如果你想要一個好的啟發式普遍使用:有幾十年的汽車,數以百萬計的車輛和司機,在他們有空調之前。 汽車的核心價值主張是交通,空調只是幫助您更舒適地到達那裡。 你不需要汽車來獲得空調,你可以在家裡擁有它。 空調可能會讓你選擇一輛車而不是另一輛車,但如果汽車沒有空調,你可能不會走路或騎馬,你只會搖下車窗。

這就引出了一個問題,什麼是輪子? 本次討論的參與者對現有端點是否準備好合併到核心存在分歧。 WP REST API 團隊成員(其中許多人已經在生產中成功使用了 API)相信端點現在已經準備就緒。 API 的當前狀態提供了將內容進出 WordPress 的能力,打開它以便與其他平台進行更輕鬆的通信,許多人認為這是主要用例。

上週加入討論的 Mullenweg 和其他人讚成提供更完整的東西,即支持 wp-admin 中可用的所有內容的 REST API。 這包括 WordPress 的許多站點管理功能,並且會使 API 幾個版本遠離核心準備就緒。

在對我們初步報告的評論中,德魯杰恩斯提倡他認為是一個中間立場,提供了一個堅實的起點。 這將涉及在合併之前解決現有端點中缺失的部分(受密碼保護的帖子、自動保存和帖子預覽以及元數據等項目。)

“正如我和貢獻者/提交者陣營的其他人在聊天中所說,可以有一個中間立場,”他說。 “這是否最終看起來像四個核心端點,四個具有某種風格、XML-RPC 奇偶校驗或某種 wp-admin 奇偶校驗的核心端點,還有待觀察,”他說。

在一篇名為“使用 WordPress REST API 進行漸進式增強”的文章中,Ryan McCue 概述了一種全面的迭代方法,該方法將推動現在的分發,並在未來的版本中推出更多端點:

漸進式增強是我們對幾個相關問題的關鍵解決方案:與 WordPress 未來功能和版本的前向兼容性,以及 WordPress 中數據類型的穩健處理。 漸進式增強還解除了對 REST API 項目的阻塞,並確保無需等到 REST API 與 WordPress 管理員的每個功能都相同。

McCue 的帖子進一步詳細介紹了 REST API 的功能檢測功能,它允許開發人員輕鬆檢測對功能的支持,並在等待核心支持的同時以向前兼容的方式構建它們。

分發是答案嗎?

在上週的會議上,McCue 表示,繼續將該項目作為功能插件開發將弊大於利。 如果不支持 wp-admin 中的所有內容就不允許發布 REST API,則團隊將被迫繼續將其作為功能插件進行迭代,同時解決 WordPress 核心中的困難障礙。 由於只有四個主要貢獻者在項目中的兼職時間不足,因此此要求可能會無限期地停止 WP REST API。

“我們相信漸進式增強方法是持續 API 開發的最佳方法,”McCue 說。 “漸進式增強是 REST API 項目必須採用的範式,如果它是我們想要在未來 10 年內添加(不破壞向後兼容性)的 API。”

Mullenweg 在 WordPress 的整個歷史中一直領導著一種迭代開發方法,他對將分發作為唯一的前進方式持謹慎態度。

WordPress 的使用量越大,聽到的腳步聲就越大。 在核心中迭代 REST API,並分發到數百萬個站點,可能會以貢獻者尚未預料到的方式影響 Web。 正如他們所說,戴皇冠的頭很重。 漣漪從 WordPress 網站擴展到也將使用 API 的外部平台。

貢獻者仍在討論核心迭代開發與提供更完整 API 的細微差別。 同時,項目的不確定性以及它仍然帶有插件依賴的事實阻礙了採用。 目前尚不清楚 WordPress 貢獻者是否會根據 Mullenweg 的建議深入研究並推動包含端點,或者他們是否會選擇花更多時間完善現有端點。 如果 WP REST API 團隊需要確保 API 可以支持 wp-admin 替換,它可能要到今年年底或更晚才能進入核心。