apifox的使用以及和idea集成
apifox
简介
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter,由此可见apifox集功能于一身,极大的提升了我们开发的效率,不用再为postman网络连接失败而发愁,更不用为swagger各种依赖冲突二苦恼
作用
下载
Apifox - API 文档、调试、Mock、测试一体化协作平台 - 接口文档工具,接口自动化测试工具,接口Mock工具,API文档工具,API Mock工具,API自动化测试工具
文档
Apifox 快速入门 | Apifox 帮助文档
IDEA中集成
安装插件
获取令牌和id
配置
映射配置规则
如:java-wtl-single:3398260,月木学途
java-wtl-single是项目的模块,一般就是分布式模块,如:
3398260就是你的id
月木学途对应你的apifox的接口目录
java注解规范
生成接口
代码站位
package jkw.controller.back;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jkw.pojo.Admin;
import jkw.service.AdminService;
import jkw.vo.BaseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;/*** back后台用户*/
@RestController
@RequestMapping("/sys/admin")
@CrossOrigin
public class AdminController {@Autowiredprivate AdminService adminService;@Autowiredprivate PasswordEncoder encoder;/*** 新增管理员** @param admin 管理员* @return*/@PostMapping("/add")@PreAuthorize("hasAnyAuthority('/sys/admin')")public BaseResult add(Admin admin) {String password = admin.getPassword();password = encoder.encode(password);admin.setPassword(password);adminService.add(admin);return BaseResult.ok();}/*** 修改管理员(设置空密码则还是原来密码)** @param admin 管理员* @return*/@PostMapping("/update")public BaseResult update(Admin admin) {String password = admin.getPassword();if (StringUtils.hasText(password)) { // 密码不为空加密password = encoder.encode(password);admin.setPassword(password);}adminService.update(admin);return BaseResult.ok();}/*** 删除管理员(附带对应的角色)** @param aid 管理员id* @return*/@DeleteMapping("/delete")public BaseResult delete(Integer aid) {adminService.delete(aid);return BaseResult.ok();}/*** 修改管理员的状态** @param aid 管理员id* @return*/@PostMapping("/updateStatus")public BaseResult updateStatus(Integer aid) {adminService.updateStatus(aid);return BaseResult.ok();}/*** 根据id查询管理员(详情)** @param aid 管理员id* @return*/@GetMapping("/findById")public BaseResult<Admin> findById(Integer aid) {Admin admin = adminService.findById(aid);return BaseResult.ok(admin);}/*** 分页查询管理员** @param page 当前页* @param size 每页条数* @return*/@PreAuthorize("hasAnyAuthority('/sys/admin')")@GetMapping("/search")public BaseResult<Page<Admin>> search(int page, int size) {Page<Admin> adminPage = adminService.search(page, size);return BaseResult.ok(adminPage);}/*** 修改管理员角色** @param aid 管理员id* @param rids 角色id* @return*/@PostMapping("/updateRoleToAdmin")public BaseResult updateRoleToAdmin(Integer aid, Integer[] rids) {adminService.updateRoleToAdmin(aid, rids);return BaseResult.ok();}/*** 获取登录管理员名** @return 管理员名*/@GetMapping("/getUsername")public BaseResult<String> getUsername() {// 1.获取会话对象SecurityContext context = SecurityContextHolder.getContext();// 2.获取认证对象Authentication authentication = context.getAuthentication();// 3.获取登录用户信息UserDetails userDetails = (UserDetails) authentication.getPrincipal();String username = userDetails.getUsername();return BaseResult.ok(username);}@GetMapping("/findByUsername")public BaseResult findByUsername(String username) {Admin admin = adminService.findByName(username);return BaseResult.ok(admin);}
}
package jkw.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jkw.mapper.GoodsSpecificationMapper;
import jkw.mapper.GoodsSpecificationOptionMapper;
import jkw.mapper.GoodsSpecificationOptionsMapper;
import jkw.pojo.GoodsSpecification;
import jkw.pojo.GoodsSpecificationOption;
import jkw.pojo.GoodsSpecificationOptions;
import jkw.service.GoodsSpecificationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.util.List;@Service
@Transactional
public class GoodsSpecificationServiceImpl implements GoodsSpecificationService {@Autowiredprivate GoodsSpecificationMapper goodsSpecificationMapper;@Autowiredprivate GoodsSpecificationOptionMapper goodsSpecificationOptionMapper;@Autowiredprivate GoodsSpecificationOptionsMapper goodsSpecificationOptionsMapper;@Overridepublic void add(GoodsSpecification goodsSpecification) {goodsSpecificationMapper.insert(goodsSpecification);}@Overridepublic void update(GoodsSpecification goodsSpecification) {goodsSpecificationMapper.updateById(goodsSpecification);}@Overridepublic void delete(Integer id) {//删除商品规格的所有规格项QueryWrapper<GoodsSpecificationOption> queryWrapper = new QueryWrapper<>();queryWrapper.eq("goodsSpecificationId", id);goodsSpecificationOptionMapper.delete(queryWrapper);//删除商品-规格项的数据List<GoodsSpecificationOption> goodsSpecificationOptionList = goodsSpecificationOptionMapper.selectList(queryWrapper);for (GoodsSpecificationOption goodsSpecificationOption : goodsSpecificationOptionList) {QueryWrapper<GoodsSpecificationOptions> queryWrapper1 = new QueryWrapper<>();queryWrapper1.eq("goodsSpecificationOptionId", goodsSpecificationOption.getGoodsSpecificationId());goodsSpecificationOptionsMapper.delete(queryWrapper1);}//删除商品规格goodsSpecificationMapper.deleteById(id);}@Overridepublic GoodsSpecification findById(Integer id) {return goodsSpecificationMapper.selectById(id);}@Overridepublic Page<GoodsSpecification> search(int page, int size) {return goodsSpecificationMapper.selectPage(new Page<>(page, size), null);}@Overridepublic List<GoodsSpecification> findAll() {return goodsSpecificationMapper.selectList(null);}@Overridepublic List<GoodsSpecification> findAllByGoodsTypeId(Integer id) {QueryWrapper<GoodsSpecification> queryWrapper=new QueryWrapper<>();queryWrapper.eq("goodsTypeId",id);return goodsSpecificationMapper.selectList(queryWrapper);}
}
相关文章:

apifox的使用以及和idea集成
apifox 简介 Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman Swagger Mock JMeter,由此可见apifox集功能于一身,极大的提升了我们开发的效率,不用再为postman网络连接失败而发愁&…...

css:过渡transition 、转换transform、动画animation
一、过渡效果:transition 属性 transition 属性是CSS3中用来实现元素过渡效果的属性之一。它定义了元素在不同状态之间平滑过渡的效果,让元素的改变更加流畅和动态。 transition 属性包括以下几个子属性: transition-property:指…...

双边滤波算法及例程
双边滤波算法是一种非线性滤波技术,用于平滑图像并保留边缘细节。它在计算像素的平均值时考虑了两个因素:1)空间域的距离和2)灰度值之间的差异。 算法步骤如下: 定义一个窗口,包含待处理像素及其周围邻域…...

排序算法-希尔排序法(ShellSort)
排序算法-希尔排序法(ShellSort) 1、说明 我们知道当原始记录的键值大部分已排好序的情况下插入排序法非常有效,因为它不需要执行太多的数据搬移操作。希尔排序法是D.L.Shell在1959年7月发明的一种排序法,可以减少插入排序法中数…...

交通物流模型 | 基于自适应图卷积网络的轨道交通短时客流预测
随着城市化进程的发展和加快,城市轨道交通系统逐渐成长为一个大型网络,站点间的拓扑结构也变得越来越复杂,使得空间依赖性的捕捉变得越来越困难。多条线路的纵横交错使得站点间呈拓扑分布,传统的图卷积网络是基于先验知识生成的邻接矩阵实现的,无法反映站点之间的实际空间…...

2.1python 常用的三种数据类型_python量化实用版教程(初级)
python 常用的三种数据类型 在 Python 编程中,最常用的三种数据类型是字符串(str)、整数(int)和浮点数(float)。这些数据类型在编写程序时非常重要,因为它们允许我们存储和操作不同…...

C++游戏后端开发(魔兽世界,MMO,TrinityCore源码拆解) 教程
基于魔兽开源后端框架 TrinityCore 的技术拆解课程 一、TrinityCore CMake项目构建 1.1 CMake的使用 什么是CMake , CMake 的工作流程 CMakeLists.txt的编写规则 静态库生成以及链接 动态库生成以及链接 嵌套CMake 1.2 Windows和Linux下编 译调试环境搭建 cmake和grap…...

MySQL 之 死锁日志的查看和分析
MySQL死锁日志的查看和分析 查看死锁日志,优化sql和索引,加速数据库数据操作...

Docker运行docker中指定一个jar
目标: 在正在运行的一个docker容器中,容器的名字为 testimg,运行我们容器文件中我们放的一个jar包。例如:xiaobai.jar,并且在群晖的定时任务中,每分钟运行一次。 解决问题方案: 在群晖定时任务中运行指定…...

nodejs+vue家教管理系统
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1nodejs简介 4 2.2 express框架介绍 6 2.3 B/S结构 4 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性…...

vuex入门
文章目录 一、vuex简介1.1 概述1.2 核心 二、使用2.1 安装2.2 创建store模块2.3 在src/store/index.js中写入内容2.4.在src/main.js中导入并使用store实例2.5.在views新建vuex目录,添加Page1.vue和Page2.vue文件2.6.配置路由2.7.在LeftNav.vue添加内容 三、存取值3.1 state直接…...

交叉熵Loss多分类问题实战(手写数字)
1、import所需要的torch库和包 2、加载mnist手写数字数据集,划分训练集和测试集,转化数据格式,batch_size设置为200 3、定义三层线性网络参数w,b,设置求导信息 4、初始化参数,这一步比较关键,…...

如何看待Unity新的收费模式?(InsCode AI 创作助手)
Unity引擎是目前全球最受欢迎的3D游戏和应用开发引擎之一,按照Unity公司自己的说法,全球1000款畅销移动游戏中70%以上都使用了Unity引擎。如果统计全平台(包括PC、主机和移动设备)的情况,非官方数据是,超过…...

Android Studio git 取消本地 commit(未Push)
操作比较简单 1.选中项目然后依次选择:Git->Repository->Reset HEAD 2.然后再to Commit中输入HEAD^,表示退回到上一个版本。...

ViewModifier/视图修饰符, ButtonStyle/按钮样式 的使用
1. ViewModifier 视图修饰符 1.1 创建默认按钮视图修饰符 ViewModifierBootcamp.swift import SwiftUI/// 默认按钮修饰符 struct DefaultButtonViewModifier: ViewModifier{let bcakgroundColor: Colorfunc body(content: Content) -> some View {content.foregroundColor…...

科技资讯|微软AR眼镜新专利曝光,可拆卸电池解决续航焦虑
微软正在深入研究增强现实(AR)领域,最近申请了一项“热插拔电池”相关专利。该专利于 2023 年 10 月 5 日发布,描述了采用模块化设计的 AR 眼镜,热插拔电池放置在了镜腿部分,可以直接拿下替换,对…...

idea系列---【上一次打开springboot项目还好好的,现在打开突然无法启动了】
问题 昨天走的时候项目还能正常启动,今天来了之后突然报下面的错误: Error:Kotlin: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.7.1, expected version is 1.1.16. 解决方案 点击 idea: Bui…...

查询资源消耗
import subprocess def get_cpu_usage(pid, duration): output subprocess.check_output([‘pidstat’, ‘-d’, ‘-p’, str(pid), ‘1’, str(duration)]).decode(‘utf-8’) lines output.strip().split(’\n’) cpu_usage [] for line in lines[4:]: fields line.spli…...

conda: error: argument COMMAND: invalid choice: ‘activate‘
参考:https://github.com/conda/conda/issues/13022 输入后重启terminal即可...

新鲜速递:Spring Cloud Alibaba环境在Spring Boot 3时代的快速搭建
了解 首先,Spring Cloud Alibaba使用的是Nacos作为服务注册和服务发现的中间件。 能力在提供者那里,而消费者只需知道提供者提供哪些服务,而无需关心提供者在哪里,实际调用过程如下图 准备工作 1、需要下载并安装Nacos最新版…...

网络-网络状态网络速度
文章目录 前言一、网络状态二、网络速度 前言 本文主要记录如何监听网络状态和网络速度。 一、网络状态 获取当前网络状态: navigator.onLine // true:在线 false:离线监听事件:online(联网) 和 offline(断网) windo…...

ACL访问控制列表的解析和配置
ACL的解析 个人简介 ACL - Access Control List 访问控制列表 策略 ------行为 允许/拒绝 ACL --包含两种 标准ACL 扩展ACL 标准ACL:只能针对源IP地址做限制 针对路由条目的限制 -路由策略 思科编号:1-99之间或1300-1999 扩展ACL:针对…...

记一次使用vue-markdown在vue中解析markdown格式文件,并自动生成目录大纲
先上效果图 如图所示,在网页中,能直接解析markdown文档,并且生成目录大纲,也支持点击目录标题跳转到对应栏目中,下面就来讲讲是如何实现此功能的。 1、下载vue-markdown yarn add vue-markdown 2、在页面中渲染markdo…...

力扣每日一题35:搜索插入的位置
题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5…...
Iptabels的相关描述理解防火墙的必读文章
Iptabels是与Linux内核集成的包过滤防火墙系统,几乎所有的linux发行版本都会包含Iptables的功能。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则Iptables有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。…...

Maven 构建项目测试
在上一章节中我们学会了如何使用 Maven 创建 Java 应用。接下来我们要学习如何构建和测试这个项目。 进入 C:/MVN 文件夹下,打开 consumerBanking 文件夹。你将看到有一个 pom.xml 文件,代码如下: <project xmlns"http://maven.apa…...

机器学习 - 似然函数:概念、应用与代码实例
目录 一、概要二、什么是似然函数数学定义似然与概率的区别重要性举例 三、似然函数与概率密度函数似然函数(Likelihood Function)定义例子 概率密度函数(Probability Density Function, PDF)定义 区别与联系 四、最大似然估计&am…...

LeetCode 热题 100-49. 字母异位词分组
题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”] 输出: [[“bat”],[“n…...

TensorFlow入门(十九、softmax算法处理分类问题)
softmax是什么? Sigmoid、Tanh、ReLU等激活函数,输出值只有两种(0、1,或-1、1或0、x),而实际现实生活中往往需要对某一问题进行多种分类。例如之前识别图片中模糊手写数字的例子,这个时候就需要使用softmax算法。 softmax的算法逻辑 如果判断输入属于某一个类的概率大于属于其…...

刷题用到的非常有用的函数c++(持续更新)
阅读导航 字符串处理类一、stoi()(将字符串转换为整数类型)二、to_string()(将整数类型转换为字符串类型)三、stringstream函数(将一个字符串按照指定的分隔符进行分词) 字符串处理类 一、stoi()ÿ…...