首页 > CMS教程 > &#&按 > 将自定义路线添加到WordPress REST API

将自定义路线添加到WordPress REST API

Lisa Kudrow
发布: 2025-02-09 10:44:09
原创
926 人浏览过

Adding Custom Routes to the WordPress REST API

WordPress REST API自定义路由:扩展API功能的强大工具

本文探讨WordPress REST API的自定义路由功能,展示如何创建定制化的API解决方案。 与仅使用默认路由相比,自定义路由提供了更精细的控制和扩展性。

核心要点:

  • WordPress REST API具有高度可定制性,允许开发者添加自定义路由和端点,满足特定需求。
  • 使用register_rest_route()函数,结合rest_api_init动作,即可添加自定义路由。 需指定命名空间、路由路径以及包含方法、回调函数和权限信息的端点数组。
  • 端点可定义具体的HTTP方法(GET、POST、PUT、DELETE),并指定其接受的数据字段、默认值、清理和验证规则。
  • 端点中的权限回调函数确保只有授权请求才能访问路由,通过检查用户权限或自定义授权方法来增强安全性。
  • 自定义路由和端点提供了一种更结构化、更安全的方式来扩展WordPress REST API,精确控制数据输入和输出,成为开发者增强WordPress项目的强大工具。

超越默认路由:构建无限可能

关于WordPress REST API的大部分讨论都集中在查询默认路由上,这使得它看起来像一个单一的API,例如Twitter API。 然而,WordPress REST API并非单一API,而是数百万个高度可定制的API的集合,本身也可以作为构建API的工具。 默认路由是众多站点需求的折中方案,并非所有任务都能仅靠默认路由完成。

就像WordPress不仅仅是全局WP_Query对象一样,REST API也不仅仅是默认API。 只使用默认路由就像在传统的WordPress项目中从不创建自己的WP_Query对象,或覆盖pre_get_posts中的默认查询一样。虽然可行,但并非所有工作都能仅靠默认的WordPress URL路由来完成。

REST API同样如此。 REST API的联合首席开发者Ryan McCue曾提到,该项目的第二版分为两部分:默认路由和创建RESTful API的基础架构。默认路由为创建自定义路由提供了很好的示例。

添加路由:register_rest_route()函数

REST API第二版引入了一个名为register_rest_route()的新函数,允许向REST API添加路由并传入端点数组。 对于每个端点,不仅要提供处理请求的回调函数,还可以定义查询中所需字段,包括默认值、清理和验证回调函数以及单独的权限回调函数。

本文将重点介绍回调函数、字段参数和权限检查这三个方面,它们展示了API的架构,并通过一个示例演示如何创建一个自定义路由,其中包含两个端点,用于显示由Easy Digital Downloads (EDD)驱动的电子商务网站中的产品信息。

设置路由:命名空间和路由路径

定义自定义路由时,需在rest_api_init动作中使用register_rest_route()函数。 该函数接受四个参数:

  1. 命名空间: 所有路由都必须命名空间化,作为“wp-json”之后下一个URL段。 默认路由的命名空间为wp。 命名空间避免了路由冲突。

  2. 路由路径: 命名空间后的URL。 例如,“/products”或“/products/(?P[d] )”(允许在最后一个URL段中使用数字,例如帖子ID)。

  3. 端点数组: 定义路由的端点,包含方法、回调函数、参数等信息。

  4. override参数(可选): 布尔值,用于处理与已定义路由的冲突。 默认为false,尝试合并路由;设置为true则替换已声明的路由。

设置端点:方法和字段

端点需要定义一个或多个HTTP传输方法(GET/POST/PUT/DELETE)。 可以使用WP_REST_Server类中的常量来定义方法,例如WP_REST_Server::READABLE(只允许GET请求)或WP_REST_Server::ALLMETHODS(允许所有方法)。

在定义字段时,可以指定字段的默认值、清理回调函数等。 这使得回调函数能够信任它接收到的数据。

回调函数和权限回调函数

每个端点的回调函数(在callback键中指定)是请求将被分派到的方法(如果权限回调函数通过)。 权限回调函数(在permission_callback键中指定)检查当前用户是否有权访问端点。

处理和响应请求

回调函数接收WP_REST_Request对象,可以使用get_params()方法获取已清理和验证的参数。 可以使用rest_ensure_response()函数创建WP_REST_Response对象,确保响应是正确的JSON格式,并包含必要的标头。

总结:自定义API,无限可能

WordPress REST API的默认路由非常有用,但自定义路由提供了更强大的控制和扩展能力。 当默认路由无法满足需求时,创建自定义路由是一个有效的解决方案。

以上是将自定义路线添加到WordPress REST API的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板