黑马JavaWeb开发笔记07——Ajax、Axios请求、前后端分离开发介绍、Yapi详细配置步骤

news2024/12/26 19:52:31

文章目录

  • 前言
  • 一、Ajax
    • 1. 概述
    • 2. 作用
    • 3. 同步异步
    • 4. 原生Ajax请求(了解即可)
    • 5. Axios(重点)
      • 5.1 基本使用
      • 5.2 Axios别名(简化书写)
  • 二、前后端分离开发
    • 1. 介绍
      • 1.1 前后台混合开发
      • 1.2 前后台分离开发方式(主流)
    • 2.YApi
      • 2.1 简介
      • 2.2 YAPI接口平台中对于接口的配置步骤
  • 总结


前言

本篇文章是2023年最新黑马JavaWeb企业级开发笔记07:Ajax、Axios请求、前后端分离开发介绍、Yapi配置步骤的总结,帮助需要学习Web开发的朋友温故而知新。

  1. Ajax
  2. Axios
  3. 前后端分离开发介绍
  4. Yapi接口管理配置步骤

一、Ajax

1. 概述

  • Ajax: 全称Asynchronous JavaScript And XML异步的JavaScript和XML
  • 前端页面中的数据,应该来自于后台,后台和前端是互不影响的2个程序,那么前端应该如何从后台获取数据呢?因为是2个程序,所以必须涉及到2个程序的交互,所以这就需要用到Ajax技术。

2. 作用

  • 与服务器进行数据交互

    • 如下图所示:前端资源被浏览器解析,但是前端页面上缺少数据,可以通过Ajax技术,向后台服务器发起请求,后台服务器接受到前端的请求,从数据库中获取前端需要的资源,然后响应给前端,前端在通过我们学习的vue技术,可以将数据展示到页面上,这样用户就能看到完整的页面了。
    • 此处可以对比JavaSE中的网络编程技术来理解
      在这里插入图片描述
  • 异步交互

    • 可以在不重新加载整个页面的情况下,与服务器交换数据更新部分网页的技术。
    • 如下图所示:当我们在百度搜索java时,下面的联想数据是通过Ajax请求从后台服务器得到的,在整个过程中,我们的Ajax请求不会导致整个百度页面的重新加载,并且只针对搜索栏这局部模块的数据进行了数据的更新,不会对整个页面的其他地方进行数据的更新,这样就大大提升了页面的加载速度,用户体验高
      在这里插入图片描述

3. 同步异步

针对于上述Ajax的局部刷新功能是因为Ajax请求是异步的,与之对应的有同步请求。

  • 同步请求发送过程如下图所示:
    在这里插入图片描述
    浏览器页面在发送请求给服务器,在服务器处理请求的过程中,浏览器页面不能做其他的操作。只能等到服务器响应结束后,浏览器页面才能继续做其他的操作
  • 异步请求发送过程如下图所示:
    在这里插入图片描述

4. 原生Ajax请求(了解即可)

  • 准备数据地址:http://yapi.smart-xwork.cn/mock/169327/emp/list
  • 创建XMLHttpRequest对象:用于和服务器交换数据
  • 向服务器发送请求
  • 获取服务器响应数据

具体的步骤此处就不介绍了,过程比较繁琐,可以自己去了解一下。

5. Axios(重点)

Axios是对原生的AJAX进行封装,简化书写。
Axios官网是:https://www.axios-http.cn

5.1 基本使用

  • 引入Axios文件:<script src="js/axios-0.18.0.js"></script>

  • 使用Axios发送请求,并获取响应结果,官方提供的api很多,此处给出2种,如下

    • 发送 get 请求
      在这里插入图片描述

    • 发送 post 请求
      在这里插入图片描述

  • axios() 是用来发送异步请求的,小括号中使用 js的JSON对象传递请求相关的参数

    • method属性:用来设置请求方式的。取值为 get 或者 post。
    • url属性:用来书写请求的资源路径。如果是 get 请求,需要将请求参数拼接到路径的后面,格式为: url?参数名=参数值&参数名2=参数值2
    • data属性:作为请求体被发送的数据。也就是说如果是 post 请求的话,数据需要作为data 属性的值
  • then() 需要传递一个匿名函数。我们将 then()中传递的匿名函数称为回调函数,意思是该匿
    名函数在发送请求时不会被调用,而是在成功响应后调用的函数。而该回调函数中的 resp 参数是对响应的数据进行封装的对象,通过 resp.data 可以获取到响应的数据。

5.2 Axios别名(简化书写)

在这里插入图片描述
在这里插入图片描述

二、前后端分离开发

1. 介绍

  • 前端开发有2种方式:前后台混合开发前后台分离开发

1.1 前后台混合开发

  • 这种开发模式有如下缺点
    • 沟通成本高:后台人员发现前端有问题,需要找前端人员修改,前端修改成功,再交给后台人员使用
    • 分工不明确:后台开发人员需要开发后台代码,也需要开发部分前端代码
    • 不便管理:所有的代码都在一个工程中
    • 不便维护和扩展:前端代码更新,和后台无关,但是需要整个工程包括后台一起重新打包部署

1.2 前后台分离开发方式(主流)

  • 将工程分为前端和后端这2个工程,交给不同人员分别开发
    在这里插入图片描述

  • 前端页面需要数据,可以通过发送异步请求,从后台获取

  • 前后台开发人员都需要遵循同一套规范开发,这就是接口文档,保证前端人员知道后台返回数据格式,后端人员知道前端需要的数据格式

    • 接口文档有离线版和在线版本,接口文档示可以查询今天提供资料/接口文档示例里面的资料
    • 接口文档的内容是后台开发者根据产品经理提供的产品原型和需求文档所撰写出来的
      接口文档示例
      在这里插入图片描述
  • 后台开发者开发一个功能的具体流程如下图所示:
    在这里插入图片描述

    • 需求分析:需要阅读需求文档,分析需求,理解需求
    • 接口定义:查询接口文档中关于需求的接口的定义,包括地址,参数,响应数据类型等等
    • 前后台并行开发:各自按照接口文档进行开发,实现需求
    • 测试:前后台开发完,各自按照接口文档进行测试
    • 前后段联调测试:前段工程请求后端工程,测试功能

2.YApi

2.1 简介

  • 前后台分离开发中,我们前后台开发人员都需要遵循接口文档
  • YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务
  • 官网地址:https://yapi.pro/
  • YApi主要提供了2个功能
    • API接口管理:根据需求撰写接口,包括接口的地址,参数,响应等等信息。
    • Mock服务:模拟真实接口,生成接口的模拟测试数据,用于前端的测试。

2.2 YAPI接口平台中对于接口的配置步骤

注意:我进去看了一下,这个网站非常不稳定,非常卡顿,并且很多人反映无法注册,推测需要魔法。我用Google账号登陆后网站仍然无法正常操作,读者可以选择使用其他类似的管理平台(据说国产的apifox作用差不多),此处为了符合视频笔记,仍然会写明Yapi的配置步骤。

演示一下YApi如何管理接口文档:

  1. 首先登录YAPI的官网,然后使用github或者百度账号登录

  2. 个人空间中,选择项目列表->添加测试项
    在这里插入图片描述

  3. 然后点击创建的项目,进入到项目中,紧接着先添加接口的分类
    在这里插入图片描述

  4. 然后我们选择当前创建的分类,创建接口信息
    在这里插入图片描述

  5. 来到接口的编辑界面,对接口做生层次的定制,例如:接口的参数,接口的返回值等等
    在这里插入图片描述

  6. 添加接口的请求参数
    在这里插入图片描述

  7. 添加接口的返回值
    在这里插入图片描述

  8. 然后保存上述设置,紧接着我们可以来到接口的预览界面,查询接口的信息,其效果如下图所示
    在这里插入图片描述

  9. 最后,我们还可以设置接口的mock信息
    在这里插入图片描述

  10. 来到接口的Mock设置窗口
    在这里插入图片描述

  11. 来到接口的预览界面,直接点击Mock地址
    在这里插入图片描述

  12. 发现浏览器直接打开,并返回如下数据
    在这里插入图片描述


总结

本篇文章是2023年最新黑马JavaWeb企业级开发(知识清单)07:Ajax、Axios请求、前后端分离开发介绍、Yapi配置步骤的总结,帮助需要学习Web开发的朋友温故而知新。

  1. Ajax
  2. Axios
  3. 前后端分离开发介绍
  4. Yapi接口管理配置步骤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2080464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用 OpenCV 组合和缩放多张图像

在图像处理领域&#xff0c;我们经常需要将多张小图像组合成一张大图。例如&#xff0c;将多张图像按一定布局排列在一起&#xff0c;或者创建一个缩略图画廊。在这篇博客中&#xff0c;我将向你展示如何使用 Python 的 OpenCV 库来完成这一任务。 代码 下面是一段完整的 Pyt…

计算物理精解【2】

文章目录 矢量运动矢量基础定义计算方法示例 矢量的分量二维空间中的矢量分量三维空间中的矢量分量分量的计算示例 参考文献 矢量运动 矢量 基础 矢量的分量是该矢量在相应轴上的投影。 a x a c o o s Q , a y a s i n Q a_xacoosQ,a_yasinQ ax​acoosQ,ay​asinQ求解矢…

【书生大模型实战营(暑假场)】进阶任务三 LMDeploy 量化部署实践闯关任务

进阶任务三 LMDeploy 量化部署实践闯关任务 任务文档视频 1 大模型部署基本知识 1.1 LMDeploy部署模型 定义 在软件工程中&#xff0c;部署通常指的是将开发完毕的软件投入使用的过程。在人工智能领域&#xff0c;模型部署是实现深度学习算法落地应用的关键步骤。简单来说…

智能科技的浪潮:AI、ML、DL和CV的探索之旅

智能科技的浪潮&#xff1a;AI、ML、DL和CV的探索之旅 前言人工智能&#xff1a;智能科技的基石从专用到通用&#xff1a;AI的分类与演进机器学习&#xff1a;数据中的智慧算法的力量&#xff1a;经典与创新深度学习&#xff1a;解锁复杂性之门神经网络的深度&#xff1a;基础与…

Python网络爬虫模拟登录与验证解析

内容导读 使用Selenium模拟登录 使用Cookies登录网站 模拟表单登录网站 爬虫识别简单的验证码 实例解析 一、使用Selenium模拟登录 1、为什么要模拟登录 在互联网上存在大量需要登录才能访问的网站&#xff0c;要爬取这些网站&#xff0c;就需要学习爬虫的模拟登录。对…

Webpack中的自定义 loader 的简单实现

1.loader简单介绍 webpack 中 loader 是用于对模块的源代码进行转换&#xff08;处理&#xff09;的插件。例如 webpack 中常见的loader&#xff0c; css-loader、babel-loader。 2.自定义 loader 关于 loader&#xff1a; loader本质上是一个导出为函数的JavaScript模块&am…

故障诊断 | 基于小波时频图与Swin Transformer的轴承故障诊断方法(PyTorch)

文章目录 文章概述程序设计参考资料文章概述 基于小波时频图与Swin Transformer的轴承故障诊断方法 针对用传统的故障诊断方法难以对非线性非平稳的柴油机故障信号进行准确高效诊断的问题, 提出基于小波时频图与Swin Transformer的故障诊断方法。该方法可以有效结合小波时频分…

Qt (11)【Qt窗口 —— 对话框 | Qt内置对话框简介】

阅读导航 引言一、对话框1. 对话框的分类&#xff08;1&#xff09;模态对话框&#xff08;2&#xff09;非模态对话框 二、Qt内置对话框 引言 在上一篇文章中&#xff0c;我们深入探讨了Qt框架中窗口的基本构建块&#xff0c;它们共同构成了Qt应用程序中用户界面&#xff08;…

RACL: Adversarially Robust Neural Architectures

RACL: 对抗鲁棒网络架构 论文链接&#xff1a;https://arxiv.org/abs/2009.00902v2 Abstract 深度神经网络(DNN)容易受到对抗性攻击。现有的方法致力于开发各种鲁棒训练策略或正则化来更新神经网络的权值。但除了权重之外&#xff0c;网络中的整体结构和信息流是由网络架构明…

文件.硬盘.IO

一.文件 &#xff08;1&#xff09;文件本身是包含多种意义的&#xff0c;这里我简单的说明一下文件的意义。 &#xff08;2&#xff09; 狭义上的文件&#xff1a;我们在硬盘中的文件。文件夹&#xff08;目录&#xff09;中存放的是文件。 &#xff08;3&#xff09; 广义…

云端集中管控边缘服务:利用 EMQX ECP 在 K8s 上快速部署 NeuronEX

随着物联网、边缘计算技术的发展&#xff0c;实现边缘服务的快速部署对于分布式计算环境至关重要。它不仅可以显著降低延迟、节省带宽资源、增强数据的安全性和隐私保护&#xff0c;同时还能改善用户体验&#xff0c;支持动态变化的工作负载需求&#xff0c;提供更高的灵活性和…

【启明智显分享】智能音箱AI大模型一站式解决方案重塑人机交互体验,2个月高效落地

2010年左右&#xff0c;智能系统接入音箱市场&#xff0c;智能音箱行业在中国市场兴起。但大潮激荡&#xff0c;阿里、小米、百度三大巨头凭借自身强大的资本、技术、粉丝群强势入局&#xff0c;形成三足鼎立态势。经过几年快速普及&#xff0c;智能音箱整体渗透率极高&#xf…

数据结构(6.4_1)——最小生成树

生成树 连通图的生成树是包含图中全部顶点的一个极小连通子图(边要尽可能的少&#xff0c;但要保持连通) 若图中顶点数为n&#xff0c;则它的生成树含有n-1条边。对生成树而言&#xff0c;若砍去它的一条边&#xff0c;则会变成非连通图&#xff0c;若加上一条边则会形成一个…

【MySQL 13】视图 (带思维导图)

文章目录 &#x1f308; 一、视图的基本概念&#x1f308; 二、视图的基本操作⭐ 1. 创建视图⭐ 2. 修改视图⭐ 3. 修改基表⭐ 4. 删除视图 &#x1f308; 三、视图的限制规则 &#x1f308; 一、视图的基本概念 视图是一种虚拟存在的表&#xff0c;将查询结果以表结构的方式保…

Sigmoid 函数及其导数推导

Sigmoid 函数及其导数推导 1. 了解 Sigmoid 函数 Sigmoid 函数是神经网络中常用的激活函数&#xff0c;因其平滑的S形曲线和将输入压缩至 (0, 1) 的特性&#xff0c;在神经网络的激活函数中扮演着重要角色。其定义如下&#xff1a; σ ( x ) 1 1 e − x \sigma(x) \frac{1…

GUI编程03:3种布局管理器

本节内容视频链接&#xff1a;https://www.bilibili.com/video/BV1DJ411B75F?p5&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV1DJ411B75F?p5&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.FlowLayout 流式布局 代码&#xff1a;…

34. 二叉树中和为某一值的路径

comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9834.%20%E4%BA%8C%E5%8F%89%E6%A0%91%E4%B8%AD%E5%92%8C%E4%B8%BA%E6%9F%90%E4%B8%80%E5%80%BC%E7%9A%84%E8%B7%AF%E5%BE%84/README.md 面试题 34. 二…

关于Linux(CentOS 7)中的用户sudo命令

&#x1f4dd;用户提权 测试非root用户的权限浏览该文件 测试非root用户的权限 当我们在当前用户使用sudo命令时&#xff0c;提示使用vimer用户的密码&#xff0c;非root。这是为什么呢&#xff1f; 因为这里系统提示需要用户的密码&#xff0c;则认为vimer用户是受信任的。 输…

用nltk包出现的三个问题 报错显示 缺少 punkt_tab、averaged_perceptron_tagger、wordnet 这三个文件

用nltk包出现的三个问题 报错显示 缺少 punkt_tab、averaged_perceptron_tagger、wordnet 这三个文件 报错是分开来的&#xff0c;你自己缺少哪一个就下哪一个&#xff0c;我这里总共是缺少三个文件&#xff0c;所以我依次去下载的 首先 在自己的虚拟环境中建立一个nltk_data文…

Qt第二十一章 语言家

文章目录 Qt Linguist简介使用流程1. 使用tr包裹字符串2. 生成翻译文件3. 打开翻译文件&#xff0c;并翻译4. 发布翻译5. 加载语言文件6. 动态切换语言 各国语言代码和名称表 Qt Linguist 简介 Qt提供了一款优秀的支持Qt C和Qt Quick应用程序的翻译工具。发布者、翻译者和开发…