WordPress REST API 为 WordPress 带来了许多新功能。REST API 使用 JSON(JavaScript 对象表示法)作为其数据格式。JSON 是一种开放标准的数据格式,正被整个网络以及软件行业更广泛地使用。它轻量且易于人类阅读,看起来就像 JavaScript 中的对象;因此得名。当你向 API 发出请求时,响应将以 JSON 格式返回。这使得开发者能够在 PHP 之外的语言中使用 WordPress,从而允许以新颖和令人兴奋的方式使用 WordPress。
为何使用 WordPress REST API
WordPress REST API 有许多用例。其中一个最大的用例是在 WordPress 之上创建单页应用程序(Single Page Applications)。你可以为 WordPress 创建一个全新的管理体验,或者为 WordPress 创建一个全新的前端体验。你甚至不需要用 PHP 编写这些应用程序。任何能够发出 HTTP 请求并解析 JSON 的编程语言都可以用来在 WordPress 上编写内容。
WordPress REST API 也可以作为核心中 admin-ajax API 的有力替代品。通过使用 REST API,你可以更轻松地构建将数据输入和输出 WordPress 的方式。使用 REST API 可以极大地简化 AJAX 调用,使我们能够在工作中提供更好的用户体验。
用例不仅限于此,我们的想象力才是唯一限制。归根结底,如果你想要一种结构化、可扩展且简单的方式来获取和输出 WordPress 中的数据,你可能希望使用 REST API。该 API 虽然简单,但初看可能相当复杂,我们将尝试将其分解为更小的组件,以便我们可以轻松拼凑出更大的拼图。
关键概念
要开始使用 WordPress REST API,我们将分解一些与 API 相关的关键概念和术语:
- 路由/端点(Routes/Endpoints)
- 请求(Requests)
- 响应(Responses)
- 架构(Schema)
- 控制器类(Controller Classes)
这些概念中的每一个都在使用和了解 WordPress REST API 方面都起着至关重要的作用。让我们简要分解它们,以便我们稍后能够更深入地探讨每一个。
路由与端点
在 WordPress REST API 的上下文中,路由(route)是一个可以映射到不同 HTTP 方法的 URI。将单个 HTTP 方法映射到路由被称为端点(endpoint)。为了澄清:如果我们向 http://oursite.com/wp-json/ 发出 GET 请求,我们将获得一个 JSON 响应,显示可用的路由,并且在每个路由中,显示可用的端点。/wp-json/ 本身就是一个路由,当发出 GET 请求时,它匹配到显示 WordPress REST API 索引的端点。我们将在以下部分学习如何注册自己的路由和端点。
请求
在 WordPress REST API 架构中,主要类之一是 WP_REST_Request。请求类用于存储和检索当前请求的信息,也可以在 PHP 内部发出请求以避免使用 HTTP。当你向已注册的路由发出 HTTP 请求时,WP_REST_Request 对象会自动为你生成。请求中指定的数据将影响你从 API 获得的响应。使用请求类可以做很多有趣的事情。请求部分将详细介绍。
响应
响应是你从 API 获得的数据。WP_REST_Response 提供了一种与端点返回的响应数据进行交互的方法。响应可以返回所需的数据,也可以用于返回错误。
架构
当我们拥有不同种类数据的响应和请求时,我们需要能够告诉我们在与哪种类型的数据进行交互。架构为我们提供了一种结构化数据的方法。架构还为 API 提供了安全优势,因为它使我们能够验证向 API 发出的请求。架构是一个很大的主题,我们将在架构部分深入探讨。
控制器类
正如你所见,WordPress REST API 有很多需要协同工作的组件。控制器类使我们能够在单一位置将所有这些元素整合在一起。有了控制器类,我们将能够管理路由和端点的注册、处理请求、利用架构并生成响应。
下一步
让我们深入探讨如何为 REST API 注册路由和端点。