在我们深入研究WordPress REST API之前,让我们先了解一下WordPress本身,以便为初学者带来好处。
WordPress于2003年推出,旨在轻松创建和发布网页,尤其适用于不太熟悉Web开发或编程的人。多年来,WordPress已经从一个博客平台发展成为一个成熟的网络开发工具,能够构建功能丰富的Web应用程序和电子商务商店。
WordPress在2015年12月推出了WordPress REST API,进一步扩展了其服务。这一强大的功能为开发人员将前端与数据管理分开,打开了使用WordPress的全新方式。 REST API还允许他们在其他Web和移动项目中利用WordPress代码库。
如果您对使用WordPress REST API感兴趣,可以参考详细的文档。但是,不熟悉REST API基本概念的人可能需要了解它是什么以及它是如何工作的!
在本指南中,我将介绍REST API的基本概念和解剖,以帮助您使用WordPress REST API。
这是我要介绍的一切
表中的内容
什么是API?
API的例子
REST API
为什么要使用REST API?
WordPress REST API剖析
路线和终点
要求
回应
控制器类
架构(JSON)
如何使用WordPress REST API?
启用和更新REST API
认证
发布数据
获取数据
什么是API
应用程序编程接口或API是一组用于两个或多个应用程序之间通信的指令。
API允许多个应用程序相互通信或与集中后端通信,以执行也可能涉及数据库访问的特定任务。
使用API的应用程序仅允许访问端点(稍后说明)以发布和读取数据。它不允许进行任何逻辑更改,也不允许访问API的后端代码。
简而言之,它是一种安全的方法,可以访问第三方应用程序以使用您的程序和数据库。
有几种类型的API,例如:
- SOAP(简单对象访问协议)
- XML-RPC
- JSON-RPC
- 休息
在本文中,我只讨论REST API。在我解释REST API是什么之前,让我们看看API派上用场的一些重要用例。
- Google API(允许用户使用其Gmail帐户登录)
- Google MAPS(允许您在网络或移动应用程序中集成MAPS功能)
- Facebook API(允许您添加“使用Facebook登录”功能并通过该应用程序发布。)
- Twitter API(使Twitter分享变得简单)
REST API
REST,Representational State Transfer的缩写,是一种API,它不是协议,而是一组架构主体。
请允许我用简单的英语解释一下。
REST API允许用户使用易于解析且操作更简单的文本数据。此文本数据通过超文本传输协议(HTTP)提供,并使用JSON格式,使用户可以将此数据用作JavaScript对象。
希望这很简单,你可以理解。
为什么使用REST API
REST API已成为行业标准,并已被Google,Facebook和亚马逊等技术巨头采用。由于其结构和快速的数据交换,开发人员还发现它更容易使用。
为什么REST API很受欢迎?嗯,这是因为他们使用JSON进行数据格式化。 JSON表示键/值对中的数据,这些数据较少混淆且更易于预测。使用JSON的API在数据交换方面更快,并且与XML格式相比具有更简单的代码。
以下是使用REST API的一些优点:
- 由于结构更简单,JSON(通常与REST API一起使用)解析得更快。
- 它们更容易使用。
- 它们提供更好的浏览器支持,非常适合缓存特别是静态信息。
- REST API消耗较少的带宽,并且更易于与现有Web项目集成。
雅虎,eBay,亚马逊和谷歌等巨头都采用了它。
现在您已经基本了解了API是什么以及使用REST API有什么优势,让我们深入探讨WordPress REST API的解剖。
WordPress REST API剖析
构建REST API是为了使服务器和客户端保持分离,并且更易于管理,更新和部署。
想象一下,如果服务器端和客户端代码都写在一个文件中,并且您需要在几个月后进行更改?好吧,首先要理解你的代码好运,更不用说经历更新文件的麻烦了。
任何REST API的主要目标是执行CRUD(创建,读取,更新和删除)任务。
通常,请求来自客户端的以下请求的API:
GET:此命令从服务器获取数据。例如;检索客户的信息。
POST:此命令允许您将数据添加到服务器。例如;注册客户。
PUT:此命令允许您更新现有数据。例如;更新访问者的密码。
删除:顾名思义,此命令允许您从数据库中删除数据。
路线和终点
路由和端点是WordPress REST API的两个基本元素。端点只是一个URL,通过该URL与服务器建立连接,路由是可以访问以执行特定操作的各个微服务。
这是一个例子:
https://wordpress.org/wp-json/
在上面的URL中,/ wp-json /是获取与WordPress,名称空间和路由相关的信息的路由。
要求
您使用WordPress REST API执行的任何任务都是以请求的形式。此请求由名为WP_REST_Request的默认类处理。此类存储使用WP REST API进行的所有请求的信息。
通常,会向某个端点发出请求,并且还可以包含参数。一个这样的示例是获取特定类别的发布数据。
回应
响应包含您在向API发出请求时要求的所需信息。 WordPress REST API响应包含JSON格式的数据,易于使用。如果出现任何问题或验证失败,则会在同一响应中出现错误。
查看响应的最简单方法是使用Chrome开发人员的工具。只需右键单击窗口并单击Inspect。这应该打开一个新窗口,您可以在其中转到Console以获取控制台消息,也可以转到Network选项卡以获取API请求的详细视图。
如您所见,它包含有用的信息,例如请求的URL,请求方法,状态代码和响应标头。
控制器类
Controller Classes进一步扩展了WordPress REST API的功能。它允许您构建自定义端点和路由,并管理负责运行API的所有元素。
架构(JSON)
Schema允许您定义端点可以使用的数据结构以及REST API可以接受的参数。
如何使用WordPress REST API
在WordPress中启用REST API
要使用WP REST API,请确保已通过运行以下命令安装它(您可以在SSH终端内运行命令):
wp –info
1 |
wp –info |
运行上面的命令后,我收到以下错误,这意味着我需要在我的服务器上安装wp-cli。
在WordPress上安装REST API很简单。您只需运行以下命令:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
1 |
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar |
现在更改文件的权限以使其可执行:
chmod + x wp-cli.phar
sudo mv wp-cli.phar / usr / local / bin / wp
1 |
chmod + x wp-cli.phar sudo mv wp-cli.phar / usr / local / bin / wp |
现在,您可以毫无问题地运行WP-CLI命令。
在WordPress中更新REST API
如果您需要更新REST API,只需登录SSH终端并运行以下命令。
wp cli更新
1 |
wp cli更新 |
此命令将使用最新,稳定版本的WP REST API更新WordPress中的REST API。
认证
使用WordPress REST API进行基本身份验证很容易设置。在这种类型的身份验证中,用户请求需要验证的URL。用户发送到此请求的凭证以base64字符串编码。但是,这不被认为是最安全的身份验证方法,因为base64字符串可以轻松解码。
要使用此类型的身份验证,请从Github下载Basic Auth插件,然后使用“插件”选项卡将其上载到WordPress站点。
其他两种类型的身份验证是Cookie验证(由同一站点上运行的插件和主题使用)和OAuth身份验证(用于外部客户端)。
发布数据
在WordPress中使用REST API的主要优点是它能够将WordPress连接到任何其他应用程序。
wp_remote_post函数可用于发布数据。此函数接受两个参数:端点或您要使用的URL以及您希望随其发送的参数。
例如,如果您需要使用WordPress API添加新帖子,可以通过以下方法执行此操作。
$ args('body')= array(
'title'=>'WP REST API',
'status'=>'草稿',
'content'=>'内容'
);
$ response = wp_remote_post('http:// username:password@yoursite.com/wp-json/wp/v2/posts/',$ args);
1 |
$ args('body')= array( 'title'=>'WP REST API', 'status'=>'草稿', 'content'=>'内容' ); $ response = wp_remote_post('http:// username:password@yoursite.com/wp-json/wp/v2/posts/',$ args); |
在上面的代码中,我请求我的WordPress网站使用WordPress REST API添加新的博客文章。
获取数据
wp_remote_post函数也可用于从WordPress站点获取数据。
例如,如果您需要按特定类别提取帖子,只需使用以下代码行进行请求:
$ response = wp_remote_get('http:// username:password@yoursite.com/wp-json/wp/v2/posts/?categories = 3');
1 |
$ response = wp_remote_get('http:// username:password@yoursite.com/wp-json/wp/v2/posts/?categories = 3'); |
在上面的代码中,我仅使用WordPress REST API请求某个类别的帖子。但是,如果我尝试访问Restricted资源而不传递设置的身份验证条件,则会返回错误。
最后的想法
WordPress REST API是一个功能强大的工具,可用于构建新插件,升级现有Web项目以及自动执行任务。使用REST API是将Web项目与WordPress连接的最快和最好的方法。
在本教程中,我已经解释了REST API是什么,它是如何工作的,以及WordPress REST API如何工作。我建议你测试它并试验它以了解这个神奇功能的真正力量。
此外,不要忘记在下面的评论中分享您的经验。