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 表示,继续将该项目作为功能插件开发将弊大于利。 如果 REST API 在没有为 wp-admin 中的所有内容提供支持的情况下不允许发布,则团队将被迫继续对其作为功能插件进行迭代,同时解决 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 替换,它可能要到今年年底或更晚才能进入核心。