4、什么是接口测试工具
为了验证接口是否被正常被访问,我们常常需要使用接口测试工具,来对数据接口进行检测
**好处:**接口测试工具能让我们在 不写任何代码 的情况下,对接口进行 调用 和 测试
常用的就是:PostMan
5、了解 Postman 界面结构
6、使用 PostMan 测试GET接口
7、使用 PostMan 测试POST接口
8、什么是接口文档
接口文档,顾名思义就是 接口的说明文档,它是我们调用接口的依据。好的接口文档包含了对 接口URL,参数 以及 输出内容 的说明,我们参照接口文档就能方便的知道接口的作用,以及接口如何进行调用
9、接口文档的组成部分
接口文档可以包含很多信息,也可以按需进行精简,不过,一个合格的接口文档,应该包含以下6项内容,从而为接口的调用提供依据:
- 接口名称:用来标识各个接口的简单说明,如 登录接口,获取图书列表接口等
- 接口URL:接口的调用地址
- 调用方式:接口的调用方式,如 GET 或者 POST
- 参数格式:接口需要传递的参数,每个参数必须包含 参数名称、参数类型、是否必选、参数说明 这4项内容
- 响应格式:接口的返回值的详细描述,一般包含数据名称、数据类型、说明3项内容
- 返回示例(可选):通过对象的形式,列举服务器返回数据的结构
示例:
八、案例
1、图书管理
- 项目效果
- UI 界面搭建需要使用到的库和插件
- 用到的
css
库bootstrap.css
- 用到的
javascript
库jquery.js
- 用到
vs code
插件Bootstrap 3 Snippets
搭建步骤
- Panel面板搭建
- 创建panel板 (快捷键:
bs3-panel:primary
) - 在
panel-body
里面,创建3个对应的输入框 (快捷键:bs3-input:addon:text
),对应修改标题 - 在
panel-body
最后面,创建button
按钮 (快捷键:bs3-button:primary
),修改内容
- 图书的表格
- 创建 table(快捷键:
bs3-table:bordered
) - 在里面创建对应5个
td
,填写里面内容
获取图书列表数据
步骤:
- 查阅资料中的接口文档,找到获取图书列表的接口
- 定义 script 标签,创建入口函数
- 利用 $.get() 方法,传入相应的
url
,和成功之后的回调函数 - 在回调函数中获取到请求成功的数据
代码:
$(function () { // 定义 baseURL const baseURL = "http://www.liulongbin.top:3006"; // 获取图书列表 function getBooks() { $.get(baseURL + "/api/getbooks", function (res) { if (res.status !== 200) return alert("获取数据失败!"); }); } })
渲染图书列表
步骤:
- 根据返回状态码来判断是否成功请求到数据
- 创建数组,用来存放行数据(
rows
) - 遍历服务器返回的数组,每遍历一次,利用数组(
rows
)去push
<tr></tr>
- 每一行
tr
里面包含了5个td
- 给每一个
td
设置对应内容即可 - 遍历循环完毕之后,找到内容容器,先清空当前内容(以免有重复数据),然后添加
rows
代码:
let rows = []; $.each(res.data, function (i, item) { rows.push(` <tr> <td>${item.id}</td> <td>${item.bookname}</td> <td>${item.author}</td> <td>${item.publisher}</td> <td><a href="javascript:;" class="del" data-id="${item.id}">删除</a></td> </tr> `); }); $("#tb").empty().append(rows.join(""));
删除功能实现
- 删除链接绑定单击事件处理函数
- 利用
tbody
容器,通过 事件委派 的方式,给动态创建的a
标签绑定事件 - 删除图书需要通过
id
删除,所以我们需要得到对应的id
,我们利用自定义属性的方式,传递过来相应的id
- 删除功能实现
- 查阅 删除 的接口文档
- 在a标签点击事件处理函数里面利用
$.get()
方法,请求服务器,传入要删除的对应id
- 删除成功之后,调用
getBookList()
刷新页面
代码:
$("#tb").on("click", ".del", function () { const id = $(this).attr("data-id"); console.log(id); $.get(baseURL + "/api/delbook", { id }, function (res) { if (res.status == 200) { alert(res.msg); } else { alert(res.msg); } getBooks(); }); });
添加功能实现
- 添加按钮绑定点击事件
- 获取三个输入框的内容
- 判断三个输入框是否输入了内容,如果没有进行提示
实现图书添加功能
- 查阅接口文档
- 注意接口文档需要提交的参数名,我们需要保持一致
- 调用
$.post()
方法,传入请求路径,然后组拼需要提交的参数 - 在成功回调里面判断返回值是否是201,如果是201代表成功,反之没有成功,进行提示
- 请求成功之后,调用
gettBookList()
方法刷新页面,同时把输入框里面值清空
代码:
$(".addBtn").on("click", function () { let bookname = $("#iptBookname").val().trim(); let author = $("#iptAuthor").val().trim(); let publisher = $("#iptPublisher").val().trim(); if (bookname.length <= 0 || author.length <= 0 || publisher.length <= 0 ) { return alert("请填写完整的图书信息!"); } $.ajax({ type: "POST", url: baseURL + "/api/addbook", data: { bookname, author, publisher, }, success: (res) => { if (res.status !== 201) return alert("添加图书失败!"); getBooks(); $("#iptBookname").val(); $("#iptAuthor").val(); $("#iptPublisher").val(); }, }); });
2、聊天机器人
- 效果
实现功能点
- 梳理案例代码结构
- 将用户输入的内容渲染到聊天窗口
- 发起请求获取聊天消息
- 将机器人的聊天内容转为语音
- 通过
<audio>
播放语音 - 使用回车发送消息
- 梳理案例的代码结构
- UI 结构梳理
- 业务代码抽离
resetui()
函数作用 — 让聊天框区域自动滚动到底部
- 将用户输入的内容渲染到聊天窗口
步骤:
- 为发送按钮绑定点击事件
- 在点击事件函数里面判断一下用户输入内容是否为空,注意:如果为空,我们清除一下输入框内容
- 获取到对应的
ul
容器,调用append
函数来追加li
,注意:追加li
的类名叫做right_word
- 清除文本输入框的值
- 最后调用一下
resetui()
,让聊天框区域自动滚动到底部
代码:
// 为发送按钮绑定鼠标点击事件 $('#btnSend').on('click', function () { var text = $('#ipt').val().trim() if (text.length <= 0) { return $('#ipt').val('') } // 如果用户输入了聊天内容,则将聊天内容追加到页面上显示 $('#talk_list').append('<li class="right_word"><img src="img/person02.png" /> <span>' + text + '</font></li>') $('#ipt').val('') // 重置滚动条的位置 resetui() })
- 发起请求获取聊天信息
步骤:
- 定义一个函数
getMsg()
接收一个参数,参数就是用户发送的信息 - 利用
$.ajax()
发送一个 GET 方式请求,传入请求地址http://ajax.frontend.itheima.net:3006/api/robot
- 定义请求数据
spoken:value
- 定义
success
成功的回调,在回调函数里面判断返回数据的message
是否等于success
- 给容器动态添加返回的内容
代码:
// 获取聊天机器人发送回来的消息 function getMsg(text) { $.ajax({ type: 'GET', url: 'http://www.liulongbin.top:3006/api/robot', data: { spoken: text }, success: function (res) { // console.log(res) if (res.message === 'success') { // 接收聊天消息 var msg = res.data.info.text $('#talk_list').append('<li class="left_word"><img src="img/person01.png" /> <span>' + msg + '</font></li>') // 重置滚动条的位置 resetui() } } }) }
将机器人聊天内容转成语音
步骤:
- 封装函数
getVoice()
接收一个参数,机器人的聊天信息 - 利用
$.ajax()
发送一个 GET 方式请求,传入请求地址http://ajax.frontend.itheima.net:3006/api/synthesize
- 定义请求数据
text:value
- 定义
success
成功的回调,判断返回的状态码是否是200,如果是代表成功 - 在页面上定义
audio
标签,设置隐藏,等数据返回之后,利用这个audio
来进行播放。设置autoplay
属性来进行自动播放
代码:
// 把文字转化为语音进行播放 function getVoice(text) { $.ajax({ type: 'GET', url: 'http://www.liulongbin.top:3006/api/synthesize', data: { text: text }, success: function (res) { // console.log(res) if (res.status === 200) { // 播放语音 $('#voice').attr('src', res.voiceUrl) } } }) }
通过回车键发送消息
步骤:
- 给文本输入框注册
keyup
事件,按键弹起的事件监听 - 在事件函数里面,通过
keycode
来获取对应的按键的 机器码 - 判断
keycode
是否等于 13(不需要去记忆,开发时候打印调试一下就行了),如果是,代表是回车键 - 如果是回车键,模拟用户点击:
$('#btnSend').click()
代码:
// 为文本框绑定 keyup 事件 $('#ipt').on('keyup', function (e) { // console.log(e.keyCode) if (e.keyCode === 13) { // console.log('用户弹起了回车键') $('#btnSend').click() } })