WordPress REST API 简介

已发表: 2022-10-19

2016 年 12 月,随着 WordPress 4.7 的发布,一个争论已久的里程碑到来了:WordPress REST API 被正式包含为 WordPress Core 的一部分。

尽管 REST API 在正式合并到核心之前就已经作为插件存在,但它随后的包含引发了相当多的争论,人们对它的包含和进一步测试的必要性提出了争论。

最终,REST API 被合并到 Core 中,现在为块编辑器以及许多第 3 方集成和与网络上 WordPress 网站的接口提供支持。

然而,对于许多 WordPress 用户来说,这是他们第一次听说任何类型的 REST API,更不用说与 WordPress 如此紧密集成的 API 了。

因此,在本文中,我们将了解什么是 REST API,WordPress REST API 的独特之处,以及它如何工作的一些示例,以及它包含在 WordPress 中后启用的一些技术类型核。

什么是 REST API?

术语 REST API 实际上是两个首字母缩略词合二为一,在理解 WordPress REST API 的工作原理和作用时两者都很重要。

什么是休息?

第一部分,REST,代表代表性状态转移。 尽可能简单地说,这是一个规范,它定义了网络上两个独立的资源应该如何相互通信。 这两个界面可能是两个不同的网站、一个网络服务器、一个移动应用程序等等。

遵循此规范的服务通常被称为 RESTful 服务,并致力于确保请求信息的客户端不必知道有关服务器状态的任何信息,以及客户端和服务器如何比其他服务更加模块化和分离通过 Internet 传输数据的方法。

从本质上讲,如果开发人员知道他们正在与 RESTful 服务交互,他们就可以对他们的请求将如何格式化以及他们将收到什么样的数据作为回报做出某些假设,这在开发互连技术时非常有用。

如果您想更深入地了解什么构成了 RESTful 服务以及这些类型的请求是如何发出的,我强烈建议您查看 Codecademy 的文章什么是 REST?

什么是 API?

API 代表应用程序编程接口,顾名思义,它为 Web 上的其他客户端和服务提供了一个与特定应用程序交互的接口。 它指定可以发送数据的端点,通常是 URL,这些 URL 是否返回任何数据或在服务器上创建资源,以及是否需要任何特定类型的身份验证才能访问这些端点。

对于当今网络上的许多流行服务,API 提供了一种自动化的方式来完成用户可以手动执行的操作,方法是允许脚本或代码片段在用户在场的情况下执行相同的操作。 例如,如果您使用 Reddit 并发现自己在浏览的许多线程上写了相同类型的评论,您可以创建一个脚本来搜索 Reddit 以查找这些类型的评论并通过 Reddit 的 API 自动发布您的标准回复。

通过 API 公开他们的基础设施,用户不必依赖脆弱的网络抓取方法来自动执行这些类型的任务,Reddit 可以跟踪谁通过他们的 API 访问他们的资源,他们这样做的频率,并控制用于超出其服务条款的用途。

为什么 WordPress 需要 REST API?

如果您在 REST API 成为核心的一部分之前曾向 WordPress 发出过类似 API 的请求,您可能熟悉 admin-ajax 的概念。 这是在 WordPress 中发出此类请求的原始方式,其中每个请求都通过 admin-ajax.php 文件进行路由,检查任何活动插件或主题的开发人员已注册的任何特定操作,然后使用这些已注册的功能来满足要求。

正如您所预料的那样,这意味着每个使用类似 API 请求的开发人员都将此功能作为其插件或主题的一部分启用,但操作方式略有不同,任何想要与此功能交互的人都必须熟悉每个插件或主题的使用方式建成。 引入 WordPress REST API 是为了标准化发出这些请求的方式,并提供一组范围更广的端点,这些端点可用于与 WordPress Core 本身进行交互。

对 WordPress REST API 的示例请求

WordPress REST API 手册维护了开箱即用的 WordPress REST API 支持的端点的完整列表。 虽然拥有一个完整的列表很好,但它可能有点让人不知所措。 让我们来看看什么可能被认为是任何 API 交互的最基本功能:获取 API 的基本资源。 对于 WordPress,该资源已发布。

所有 WordPress REST API 的端点都以 URL 路径wp-json为前缀,位于根域和 REST API 手册所指的Base Route之间。 这意味着如果我们访问端点以列出站点的帖子并且我们站点的 URL 是example.com ,我们将需要向 URL https://example.com/wp-json/wp/v2/posts发出请求https://example.com/wp-json/wp/v2/posts

通过简单地在您最喜欢的网络浏览器中加载该 URL 或使用 API 浏览器(例如 Postman)发出 GET 请求,应该会从 API 返回一个帖子列表,尽管它们可能不是您使用的格式到。 如果您看到的只是一长串文本,那么您正在查看一种称为 JSON 的数据格式。 如果您通过浏览器访问 API 端点并希望以更易读的格式查看此信息,我建议安装 JSON Viewer 扩展。 这将检测浏览器中的任何 JSON 输出并对其进行格式化,以便您可以更轻松地阅读它。 安装后,您应该会看到 WordPress REST API 输出的帖子数据,并且您已成功发出第一个 REST API 请求!

在安装了 JSON 查看器扩展的浏览器中查看来自 WordPress REST API 的数据的示例

WordPress REST API 还能做什么?

除了在 WordPress 站点上获取最新帖子列表外,查看 Endpoint Reference,您会发现还有大量其他方式可以与 WordPress REST API 进行交互。 如果您已通过 WordPress 用户身份验证,则可以通过 API 发布帖子、获取网站可用的主题列表、查看和编辑设置以及可通过 wp-admin 手动交互的许多其他功能.

WordPress REST API 的一些实际应用示例

通过 REST API 公开与 WordPress 交互的能力开辟了现在可以使用 WordPress 作为内容管理后端的网站的广泛可能性。

TechCrunch :在 WordPress REST API 宣布后不久,TechCrunch 宣布它已经使用无头架构重建其网站,这意味着他们在后端使用 WordPress 作为内容管理系统,同时仍然能够使用“单页”样式 React 应用程序”在前端。

Block Editor (Gutenberg) :也许大多数人受益于 REST API 的用法是 WordPress Block Editor。 现在是 WordPress 中的主流编辑器,块编辑器的大部分功能都是通过它可以与 WordPress REST API 端点交互而无需

各种各样的社区项目:当 REST API 第一次被考虑合并到一个核心时,一个公开的电话出去要求人们更多地谈论他们是如何使用 REST API 的。 答案非常广泛,您可以从像 WordPress 这样大的社区中得到答案,但包括从具有比以前更多交互界面的插件到为客户构建可以使用 WordPress 内容的移动应用程序的所有内容。

包起来

即使您没有任何使用 API 的经验,您也可能在您职业生涯的某个时刻使用过依赖 WordPress REST API 来运行的东西。 随着界面继续变得更加动态,网站开始有更多不需要页面加载的操作。

现在您知道什么是 WordPress REST API,您可能正在考虑可以使用它构建的一些东西! REST API 绝对可以成为您工具箱中的强大工具,用于构建更好的 WordPress 主题和插件。

如果您需要更多说明或一些可能的示例,请查看文档并直接进入!