Ajax第一天笔记总结(二)

简介: Ajax第一天笔记总结(二)
4、什么是接口测试工具

为了验证接口是否被正常被访问,我们常常需要使用接口测试工具,来对数据接口进行检测

**好处:**接口测试工具能让我们在 不写任何代码 的情况下,对接口进行 调用测试

常用的就是:PostMan

1a0992eb98fa4261ac6f84aa0ae26546.png


5、了解 Postman 界面结构

9aed7da1f94047408a643288ec2e01d8.png


6、使用 PostMan 测试GET接口

584596dea17f458595cc3d20e086fde5.png


7、使用 PostMan 测试POST接口

fb42d674b5ca4c9488ccdbb40631a7a4.png


8、什么是接口文档

接口文档,顾名思义就是 接口的说明文档它是我们调用接口的依据。好的接口文档包含了对 接口URL参数 以及 输出内容 的说明,我们参照接口文档就能方便的知道接口的作用,以及接口如何进行调用


9、接口文档的组成部分

接口文档可以包含很多信息,也可以按需进行精简,不过,一个合格的接口文档,应该包含以下6项内容,从而为接口的调用提供依据:


  • 接口名称:用来标识各个接口的简单说明,如 登录接口获取图书列表接口
  • 接口URL:接口的调用地址
  • 调用方式:接口的调用方式,如 GET 或者 POST
  • 参数格式:接口需要传递的参数,每个参数必须包含 参数名称参数类型是否必选参数说明 这4项内容
  • 响应格式:接口的返回值的详细描述,一般包含数据名称数据类型说明3项内容
  • 返回示例(可选):通过对象的形式,列举服务器返回数据的结构


示例:

7f33bf31a84444a0b346a49802bf2820.png

c22865a9379144d38e7c97d661f0cedb.png

e4057804923c4842a153ea5806a9ea87.png


八、案例

1、图书管理
  • 项目效果

858f00ee60a148b483c5c68ffe8d96b5.png


  • UI 界面搭建需要使用到的库和插件
  • 用到的 cssbootstrap.css
  • 用到的 javascriptjquery.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、聊天机器人
  • 效果

4778808bd79a480f8634a75bd119ea9b.png


实现功能点

  • 梳理案例代码结构
  • 将用户输入的内容渲染到聊天窗口
  • 发起请求获取聊天消息
  • 将机器人的聊天内容转为语音
  • 通过 <audio> 播放语音
  • 使用回车发送消息
  • 梳理案例的代码结构
  • UI 结构梳理

f1b7581f73064a9eacc3d160f681d418.png

  • 业务代码抽离
  • 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()
    }
  })




目录
相关文章
|
9月前
|
JSON 前端开发 JavaScript
AJAX 课程学习笔记三
AJAX 课程学习笔记三
|
8月前
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
149 2
|
前端开发 数据可视化 JavaScript
Python Flask Echarts数据可视化图表实战晋级笔记(4)ajax参数传递互动
Python Flask Echarts数据可视化图表实战晋级笔记(4)ajax参数传递互动
137 0
|
9月前
|
JSON 缓存 前端开发
AJAX 课程学习笔记二
AJAX 课程学习笔记二
|
9月前
|
XML 前端开发 JavaScript
AJAX 课程学习笔记一
AJAX 课程学习笔记一
|
9月前
|
JSON 前端开发 JavaScript
前端知识笔记(三十七)———Django与Ajax
前端知识笔记(三十七)———Django与Ajax
61 0
|
9月前
|
XML JSON 前端开发
Ajax后端极简笔记
Ajax后端极简笔记
81 0
|
9月前
|
JSON 前端开发 JavaScript
前端知识笔记(二)———Django与Ajax
前端知识笔记(二)———Django与Ajax
72 0
|
前端开发
前端学习笔记202306学习笔记第四十三天-ajax的经典四大步骤3
前端学习笔记202306学习笔记第四十三天-ajax的经典四大步骤3
87 0
|
前端开发
前端学习笔记202306学习笔记第四十三天-ajax的经典四大步骤1
前端学习笔记202306学习笔记第四十三天-ajax的经典四大步骤1
80 0