springMVC实验(二)—调式工具APIFOX的使用

news2024/10/7 6:47:04

【知识要点】

  1. 后端开发调试工具
    前后端分离已经成为互联网类软件开发主流模式,没有前端操作的支持,如何调试后端程序的就是开发人员必须解决的问题。如:get类请求可以直接使用浏览器就能模拟测试,但是post、put等类型的请求,则需要专门工具进行辅助测试。在实际开发中这种类型的辅助测试工具很多,如:idea集成的HTTP client、postman、Apifox等,其中Apifox是国内推出的一款调试工具,目前无论前端开发还是后端开发必须掌握的一中工具
  2. Apifox简介
    Apifox是广州睿狐科技有限公司主持开发的接口管理工具,主要服务有API 文档,API 调试、API 数据 Mock、API 自动化测试。它是一站式接口协作平台,能够通过一套系统、一份数据,解决多个系统之间的数据同步问题。在调试方面,Apifox不仅全面兼容Postman功能和脚本语法,而且后端人员可以使用接口用例调试开发中接口,只要所有接口用例调试通过,接口就开发完成了,当已开发的接口有变化,调试的时就系统自动更新了文档,零成本的保障了接口维护的及时性。

【实验目的】

  1. 掌握Apifox工具的安装配置
  2. 掌握使用Apifox进行后端服务的调试

【实验内容】

  1. Apifox安装
  2. 使用apifox调试学生信息的查询和新增
  3. 使用Apifox IDEA插件快速生成接口文档

【实验步骤】

1. Apifox安装与使用

1)进入apifox官方主页,下载apifox,下载安装包解压安装即可使用。
2) 安装完成后,启动软件,登录后进入系统。如果首次使用该软件,需要注册账户,注册完成后登录进入系统,界面如下图所示。
在这里插入图片描述
3) 登录与注册。登录之后就会有一个个人项目,里面有一个项目案例给你简单介绍这个地方的使用,会让使用者进行一个简单的了解。
4)测试环境设置。进入到创建的项目,便可以设置测试环境,如下图所示
在这里插入图片描述
5) 编写要测试的接口,添加接口过程如下图所示。测试接口编写完成后,在开发环境中启动应用,便可以开始调试。

2. 创建SpringMVC工程

1) 创建SpringMVC工程demo1
2) 项目中需要将Java对象字符换转Json字符串,需要添加fastjson坐标,如下所示

<dependency>  
  <groupId>com.alibaba</groupId>  
  <artifactId>fastjson</artifactId>  
  <version>1.2.72</version>  
</dependency>

3)项目中使用到HttpServletResponse,需要添加javax.servlet-api的坐标,如下所示

<dependency>  
  <groupId>javax.servlet</groupId>  
  <artifactId>javax.servlet-api</artifactId>  
  <version>3.1.0</version>  
  <scope>compile</scope>  
</dependency> 

3. 示例代码编写

1) 在com.bjwl.vo包中添加学生实体类(StudentVO),代码如下所示

public class StudentVO {  
    private  String sno;  
    private  String name;  
    private  Integer age;  
    //省略getter、setter方法  
}  

2)在com.bjwl.controller包中添加学生实体类(StudentController),代码如下所示

@Controller  
@RequestMapping(value = "student")  
public class StudentController {  
    private List<StudentVO> getStudents() {  
        List<StudentVO> students = new ArrayList<>();  
        StudentVO student1 = new StudentVO();  
        student1.setSno("001");  
        student1.setName("张小凡");  
        student1.setAge(18);  
        students.add(student1);  
  
        StudentVO student2 = new StudentVO();  
        student2.setSno("002");  
        student2.setName("陆雪琪");  
        student2.setAge(18);  
        students.add(student2);  
  
        return students;  
    }  
  
    @RequestMapping("list")  
    public void getAllStudent(HttpServletResponse response) throws IOException {  
        List<StudentVO> students = getStudents();  
  
        response.setContentType("text/html;charset=utf-8");  
        response.getWriter().write(JSON.toJSONString(students));  
    }  
  
    @RequestMapping("add")  
    public void InsertStudent(HttpServletRequest request, HttpServletResponse response) throws IOException {  
        List<StudentVO> students = getStudents();  
        //处理请求中文乱码问题  
        request.setCharacterEncoding("UTF-8");  
  
        StudentVO student = new StudentVO();  
        student.setSno(request.getParameter("sno"));  
        student.setName(request.getParameter("name"));  
        student.setAge(Integer.parseInt(request.getParameter("age").toString()));  
        students.add(student);  
        //处理响应中文乱码问题  
        response.setContentType("text/html;charset=utf-8");  
        response.getWriter().write(JSON.toJSONString(students));  
    }  
} 

程序调试

  1. 如果需要调试,设置断点,启动运行程序。
  2. 测试获取学生信息接口。打开apifox,添加学生信息获取接口student/list。设置请求参数,因为本次请求不携带参数,则无需设置参数;设置响应参数,由于代码中将ContentType设置为“text/html;charset=utf-8”,对应的响应参数为html。保存后运行,运行结果如下图所示
    在这里插入图片描述
    3)调试新增学生接口,打开apifox,添加新增学生信息获取接口student/add,请求方法的类型为post方法,设置请求参数,Content-Type类型为application/x-www-form-urlencoded,请求参数为学生的属性信息;同样响应报文的参数必须设置为“text/html;charset=utf-8”,保存后运行结果如下图所示
    在这里插入图片描述

4. 自动化接口文档生成工具—Apifox IDEA插件的使用

  1. 打开IDEA > File > Settings> Plugins,搜索并安装Apifox Helper,也可以离线下载包文件在此安装。
  2. 安装完成后,重启Idea系统。启动后进入设置界面Settings > ApifoxHelper,进行相关设置页面,如下图所示。
    在这里插入图片描述
    3) 同步模块内所有接口。在模块目录上的右键菜单中选择 Upload to Apifox,将模块中的接口导出到Apifox中,导入结果如下图所示
    在这里插入图片描述

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

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

相关文章

open3d-点云及其操作

open3d提供了一个专门用于点云的数据结构 PointCloud。 class PointCloud(Geometry3D):color # 颜色normals # 法向量points # 点云def __init__(self, *args, **kwargs):"""__init__(*args, **kwargs)Overloaded function.1. __init__(self: open3d.cpu.py…

对某登录站点的JS前端逆向思路

前言 js逆向一直没有相关了解&#xff0c;虽然目前渗透遇见的不是很多&#xff0c;大多数遇见的要么不加密&#xff0c;要么无法实现其加密流程&#xff0c;不过最近看到了一个较为简单的站点正好能够逆向出来&#xff0c;就做了简单记录。本文旨在介绍js逆向的一些基础思路&a…

Antd可编辑表格初始数据为空,单元格不能编辑的解决办法

黑科技超简单: 给table表格增加行className rowClassName{() > editable-row} 然后设置可编辑表格的行样式 .editable-row:hover .editable-cell-value-wrap {border: 1px solid #d9d9d9;border-radius: 4px;padding: 4px 11px;}.editable-cell-value-wrap {padding: 5px…

网络调试助手 连接Onenet 多协议接入平台 TCP透传协议

onenet文档链接 多协议接入地址 打开Onenet平台&#xff0c;多协议接入 选择TCP透传协议&#xff0c;点击添加产品&#xff0c;输入信息&#xff0c;点击确认 点击设备列表&#xff0c;添加设备 下面需要上传一个解析脚本文件该文件的下载地址lua文件下载地址 建立连接 设备…

Vmware虚拟化引擎开启

VMware虚拟化引擎开启可以优化虚拟机性能和安全性&#xff0c;但总会出现打开后报错的情况&#xff0c;需要按以下步骤设置处理。 通过任务管理器查看CPU是否已经启用虚拟化 在启用或关闭windows功能中去掉和虚拟化配置相关的功能项后重启 在VMware中选择需要的虚拟化引擎&…

上海震坤行:水泥行业数字化采购的趋势、策略与实践

上海震坤行&#xff1a;水泥行业数字化采购的趋势、策略与实践 在中国水泥协会发布的《2023年上半年水泥行业经济运行及下半年展望》中提到了水泥行业的发展现状——2023年上半年&#xff0c;在全球经济增长放缓、国内经济延续恢复态势、但市场需求不足的宏观环境下&#xff0…

Leetcode394. 字符串解码

Every day a Leetcode 题目来源&#xff1a;394. 字符串解码 解法1&#xff1a;栈 本题中可能出现括号嵌套的情况&#xff0c;比如 2[a2[bc]]&#xff0c;这种情况下我们可以先转化成 2[abcbc]&#xff0c;在转化成 abcbcabcbc。我们可以把字母、数字和括号看成是独立的 TO…

leetcode LCR 179. 查找总价格为目标值的两个商品(优质解法)

代码&#xff1a; class Solution {public int[] twoSum(int[] price, int target) {int lengthprice.length;int left0;int rightlength-1;while (left<right){if(price[left]price[right]>target){right--;}else if(price[left]price[right]<target){left;}else {b…

express+mySql实现用户注册、登录和身份认证

expressmySql实现用户注册、登录和身份认证 注册 注册时需要对用户密码进行加密入库&#xff0c;提高账户的安全性。用户登录时再将密码以相同的方式进行加密&#xff0c;再与数据库中存储的密码进行比对&#xff0c;相同则表示登录成功。 安装加密依赖包bcryptjs cnpm insta…

毫无基础的人如何入门 Python ?--找对学习入口是关键!

1.行百里者半三十 不少学生或职场人士总面临这样一种窘境&#xff1a;数字化转型大背景、大趋势下&#xff0c;感觉非常有必要学习Python等分析工具&#xff0c;但在真正学习Python的各种语言规则时&#xff0c;往往体验不到知识的乐趣&#xff0c;翻看个别章节后即束之高阁。…

循环神经网络RNN

1. 背景 RNN(Recurrent Neural Networks) CNN利用输入中的空间几何结构信息&#xff1b;RNN利用输入数据的序列化特性。 2. SimpleRNN单元 传统多层感知机网络假设所有的输入数据之间相互独立&#xff0c;但这对于序列化数据是不成立的。RNN单元用隐藏状态或记忆引入这种依赖…

力扣 --- 三数之和

目录 题目描述&#xff1a; 思路描述&#xff1a; 代码&#xff1a; 提交结果&#xff1a; 官方代码&#xff1a; 官方提交结果&#xff1a; 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k…

【虚拟机】Docker基础 【二】

2.2.数据卷 容器是隔离环境&#xff0c;容器内程序的文件、配置、运行时产生的容器都在容器内部&#xff0c;我们要读写容器内的文件非常不方便。大家思考几个问题&#xff1a; 如果要升级MySQL版本&#xff0c;需要销毁旧容器&#xff0c;那么数据岂不是跟着被销毁了&#x…

vue要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?

面试官&#xff1a;vue要做权限管理该怎么做&#xff1f;如果控制到按钮级别的权限怎么做&#xff1f; 一、是什么 权限是对特定资源的访问许可&#xff0c;所谓权限控制&#xff0c;也就是确保用户只能访问到被分配的资源 而前端权限归根结底是请求的发起权&#xff0c;请求…

上海震坤行被评为虹桥生产线互联网服务高质量发展平台

上海震坤行被评为虹桥生产线互联网服务高质量发展平台 10月12日&#xff0c;新一期“潮涌浦江投资虹桥”活动暨“战略赋能新机遇&#xff0c;开放引领新高地”——2023虹桥国际中央商务区投资促进大会在上海虹桥举行。 本次活动旨在释放关于推动虹桥国际开放枢纽进一步提升能级…

Attention机制(笔记)

参考&#xff1a;2.3.2注意力机制-part1_哔哩哔哩_bilibili 什么是attention&#xff1f; 答&#xff1a;注意力放在事物最有辨识度的部分 attention计算机制&#xff1a; 为什么用这个公式可以得到attention&#xff1f; 补充说明&#xff08;chatGPT给出的解释&#xff09;&…

Vue中 实现自定义指令(directive)及应用场景

一、Vue2 1. 指令钩子函数 一个指令定义对象可以提供如下几个钩子函数 (均为可选)&#xff1a; bind 只调用一次&#xff0c;指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。inserted 被绑定元素插入父节点时调用 (仅保证父节点存在&#xff0c;但不一定已…

高等数学中微分方程的种类及其解法

1 微分方程的基本概念 1.1 微分方程 含导数或微分的方程,称为微分方程 1.2 微分方程的阶 微分方程中所含的导数或微分的最高阶数,称为该微分方程的阶数 1.3 微分方程的解 使得微分方程成立的函数,称为微分方程的解,微分方程的解可分为通解和特解 不含任意常数的微分方程的…

正式确定,奥特曼重回 OpenAI 担任 CEO

今天&#xff0c;OpenAI 正式宣布山姆奥特曼回归 OpenAI&#xff0c;重新担任 CEO&#xff1a; 米拉将回归首席技术官职位&#xff08;CTO&#xff09;而新的初步董事会成员包括布雷特泰勒&#xff08;主席&#xff09;、拉里萨默斯和亚当D’安杰洛。经此一役&#xff0c;可以…

Java核心知识点整理大全23-笔记

目录 21. JAVA 算法 21.1.1. 二分查找 21.1.2.冒泡排序算法 21.1.3. 插入排序算法 21.1.4. 快速排序算法 21.1.1. 希尔排序算法 21.1.2. 归并排序算法 21.1.3. 桶排序算法 21.1.4. 基数排序算法 21.1.5. 剪枝算法 21.1.6. 回溯算法 21.1.7. 最短路径算法 21.1.8. 最…