将 Postman 与 WordPress REST API 一起使用
Postman 是一个强大的工具,用于发送 URL 请求并查看返回的响应数据。虽然您可以在任何浏览器中执行公共 GET 请求,但 Postman 提供以下功能:
-
个 POST、PUT 和 DELETE 请求(以及更多)
-
传递标头
-
传递正文数据
-
认证
-
将响应视为不同类型的数据
-
保存您的回复以备后用
发送您的第一个请求
首先,确保从此处下载并安装 Postman 应用程序。我们将使用桌面版本来完成提出请求并查看结果。
安装应用程序后,您应该会看到如下内容:
[截图](https://res.cloudinary.com/practicaldev/image/fetch/s--fsGNT8Vi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// /dev-to-uploads.s3.amazonaws.com/uploads/articles/08hnlr15f3za2u117rqg.png)
要开始提出请求,只需单击主列中概览选项卡旁边的 + 图标。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--YwmU1cyK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https ://dev-to-uploads.s3.amazonaws.com/uploads/articles/t05y8jwabff02ztp6wji.png)
在新选项卡的顶部区域,您有几个选项:
-
设置请求类型(默认为GET)
-
输入你的网址
-
发送请求
-
添加 url 参数、授权、标头和正文数据(我们不会在本文中介绍其他选项)
最快的入门方法是测试公共 GET 请求。无论您是在本地工作还是使用实时站点,都可以输入 WordPress 站点的 url 并附加/wp-json/wp/v2/posts
With permalinks: **http://index.local/wp-json/wp/v2/posts**
Without permalinks: **http://index.local/?rest_route=/wp/v2/posts**
进入全屏模式 退出全屏模式
输入网址后,点击“发送”,您将在底部看到响应:
[](https://res.cloudinary.com/practicaldev/image/fetch/s---oXyWWca--/c_limit%2Cf_auto%2Cfl_progressive% 2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/28oo3gvq3lgb12bg2fi0.png)
Postman 在这里做了一些对测试有用的事情:
-
显示正文响应并将响应自动格式化为 JSON
-
提供其他视图,如 raw(这在使用 print_r 调试时非常有用)
-
可以选择查看请求中的任何 cookie,以及发回的标头
-
提供状态、响应时间和大小
发送POST请求
要从 Postman 向 WordPress 发送 POST(或 PUT 和 DELETE 请求),我们需要对我们的请求进行身份验证。这是 WordPress 的要求,因为这些类型的请求需要在登录时发生。
有几种不同的方法可以验证从 Postman 到 WordPress 的请求。
传递随机数和 cookie
如果您正在积极使用 WordPress 仪表板并需要在 Postman 中快速测试一些 API 方法,您实际上可以在 Postman 中传递浏览器的 nonce 和 cookie 值。
这要求您执行发送 API 请求的操作,然后您将从浏览器的检查器工具中读取该请求。
从任何现代浏览器:
1.打开浏览器的检查器工具
-
单击网络选项卡
-
过滤以仅显示 Fetch 或 XHR 请求
-
刷新页面(或执行会导致 API 请求的操作)
-
在检查器的列表中单击请求
-
单击标题选项卡
-
查找请求头
-
复制 X-WP-Nonce 标头值
然后在您的邮递员请求选项卡中:
1.单击顶部的标题选项卡,在网址栏下方
2.滚动到列表底部并双击关键字段使其可编辑
-
输入 X-WP-Nonce
-
双击关键字段旁边的值字段
-
输入你的 nonce 值
6.输入另一个标题并将其命名为Cookie
现在回到浏览器的检查器工具
-
找到你的 cookie 列表
-
Safari:点击顶部的存储,然后点击侧边栏中的 Cookie
-
Chrome:点击顶部的应用程序,然后打开侧边栏中的 Cookies 下拉菜单并选择您所在的站点
-
Firefox:点击顶部的存储,然后打开侧边栏中的 Cookies 下拉菜单并选择您所在的站点
2.找到以wordpress\logged\in开头的cookie
-
复制完整的 cookie 名称并将其粘贴到 Postman 中 Cookie 标头的值中
-
在末尾添加一个 u003d 符号
5.从浏览器复制完整的cookie值,在u003d号后输入if
完成后,您将看到两个新的标题,如下所示:
-
X-WP-Nonce | ce243bbe44
-
饼干 | wordpress_logged_in_9ab7178f511b0215ddb4f12594ea7d1bu003ddavid%7C1629648436%7CKRHVjvhnwKGvUxs6lUQ6PyaPiAgi6TfwjUGwalhCQm2%7C5948f6d8ebad2bbaab3984c1876020217d6a6e9db6b90dcdda9e10c0967d6182
如您所见,这是很多步骤。但是,如果您在无法添加额外身份验证并且需要测试 POST 端点的系统中工作,那么它可能很有价值。
使用应用程序密码的基本身份验证
如果您可以选择,使用基本身份验证是对请求进行身份验证的一种更简单的方法。它还允许您执行更强大的测试,因为您可以尝试以具有不同角色的不同用户的身份发出请求,以确保您的 API 是安全的。
WordPress 现在为用户提供了一个应用程序密码生成器,使基本身份验证易于设置:
1.在WordPress中编辑您要认证的用户
2.向下滚动到应用程序密码
3.在“新申请密码名称”中输入Postman
4.点击“添加新应用密码”
-
将显示密码,如下所示:
jMOs od2z uGji E4Pu oYMV v1HZ
-
确保在执行任何其他操作之前复制密码。你只能看到一次(如果你搞砸了,撤销你刚刚设置的密码并重新开始)
在您的邮递员请求屏幕中:
1.点击url字段下的Authorization
-
从类型下拉列表中选择基本身份验证
-
输入您的 WordPress 用户名
4.输入你复制的密码
[](https://res.cloudinary.com/practicaldev/image/fetch/s--MOlMDiyH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https ://dev-to-uploads.s3.amazonaws.com/uploads/articles/b45se0ccx4a4c7xgvrp5.png)
您现在可以处理 POST、PUT 和 DELETE 请求了!要对此进行测试:
1.将url旁边的请求下拉菜单更改为POST
-
输入您的 URL 加上
/wp-json/wp/v2/posts/<id>
,其中<id>
是帖子 ID -
选择 url 字段下的 Body 选项卡
4.选择原始单选选项
- 将单选选项右侧的文本下拉菜单更改为 JSON
6.输入:{ "title": "New Title" }
- 点击发送
如果您按照以下步骤操作,您应该会看到如下内容:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--TDvsFPye--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// /dev-to-uploads.s3.amazonaws.com/uploads/articles/j3ayn1jpsts642sl785x.png)
为多个请求添加身份验证
为了使身份验证更加容易,您应该为您的请求创建一个集合,并在全局范围内设置身份验证。这样您就可以启动新请求,而无需每次都复制和粘贴您的用户名和密码。去做这个:
- 确保 Postman 中的侧边栏已打开并设置为收藏:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--9zgCnrih--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// dev-to-uploads.s3.amazonaws.com/uploads/articles/r5po2fuu7nfwzf62b57i.png)
1.点击中心的创建收藏按钮
2.您的收藏将立即创建并显示身份验证设置:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--erhiOtUc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev -to-uploads.s3.amazonaws.com/uploads/articles/coruxjcyl6d2wudsd0ra.png)
- 选择 Basic Auth 并执行与验证单个请求相同的步骤:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--0560ISvO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https ://dev-to-uploads.s3.amazonaws.com/uploads/articles/d1xm20ynt91ifdmb949q.png)
1.返回您的请求选项卡并将授权设置恢复为“从父级继承身份验证”
- 最后,保存您的请求并将其添加到新集合中
总结
您现在已准备好在 Postman 中测试您的 WordPress REST 端点!通过这些步骤,当您无权修改用户或使用基本身份验证为不同的 WordPress 安装创建集合时,您可以快速测试一次性 API。
作者
.ltag__user__id__628430.follow-action-button { background-color: #0!important;颜色:#ffffff!重要;边框颜色:#0!重要; }[
](/大卫伍尔夫)
大卫·伍尔夫关注
设计师和开发商。在推特上关注我:https://twitter.com/wwuulf
更多推荐
所有评论(0)