WordPress REST API 简介

wordpress rest api

REST(Representational State Transfer )是一项在互联网中使用和操作资源(数据)的技术规范,其基于 HTTP 1.1、JOSN、XML 等互联网技术标准,提供了一种简洁而有效的方式分享和使用资源,从而获得了广泛的支持和应用。WordPress 内置提供对 REST 的支持,本片文章介绍一下相关的技术内容。

WordPress 核心提供了一套 REST API 用于访问其相关的资源,如文章、目录、标签、评论、用户、媒体等。WordPress REST API 有几个核心概念如下:

1、Routes(路径)

路径就是指向 WordPress 资源(数据)的 URI 地址,不同的 URI 用于获取不同的数据资源。比如 URI https://site-name/wp-json/wp/v2/posts 请求文章列表。

2、Endpoints(端点)

端点对应 URI 所请求操作的数据资源,针对每个 URI 操作所使用的方法(GET、POST、PUT、DELETE),由相应的端点响应并返回结果(数据资源)。比如端点 Posts 可以实现列表文章、创建文章、检索文章、修改文章、删除文章等。

3、Schema(数据描述)

对应发出请求的数据以及所返回的数据,需要有一个结构化的描述,这样的数据描述定义在 API Schema 里面,端点将按照 Schema 中的定义接受和返回数据。

对于所有公开的资源(如文章),WordPress REST API 无需认证就可以返回结果,当然也可以要求对所有的请求做认证,通过后才能返回结果,这个可以在钩链中进行校验。

add_filter( 'rest_authentication_errors', function( $result ) {
    if ( true === $result || is_wp_error( $result ) ) {
        return $result;
    }
    // 非登录用户返回错误
    if ( ! is_user_logged_in() ) {
        return new WP_Error(
            'not_login',
            __( '未登录!' ),
            array( 'status' => 401 )
        );
    }
    // 认证通过
    return $result;
});

由于 REST 是开放标准,所以可以使用大多数流行的开发语言(PHP、Java、C#、JavaScript)调用 WordPress 的 REST API 访问所需要的资源。

WordPress 核心集成了符合 REST 规范的 JavaScript 客户端脚本 Backbone.js,可以非常方便地访问 WordPress 的 Endpoints。

另外,WordPress 的 REST API 可以进行扩展已满足特定的需求。比如针对用户内容类型建立相对应的 Endpoints,在缺省的响应(Response)中增加用户数据等。详细内容可以参考官网文档的说明。

在后续的文章中,将会用实际的例子说明 WordPress REST API 的使用方法。

发表评论

邮箱地址不会被公开。 必填项已用*标注