分享IDEA通过插件 【一键自动生成】 在线api接口文档

news2024/11/15 10:17:51

        开发写代码已经很辛苦,相信每个开发人员都不想写接口文档,但是不写又不行。尤其现在开发的项目偏向于前后端分离,在没有接口的情况下,前后端很难对接联调,测试也无法很好的测试。现在IDEA的插件仓库里有款插件:Apifox Helper,可以解放双手,自动生成接口文档了。(本人用的IDEA版本是2022.2)

一、安装

在IDEA 插件市场里搜索 Apifox Helper,这是国内一个做 API 协作管理平台的厂商(Apifox)做的插件,可以非常方便自动生成接口文档并且同步到你的项目中。这个插件可以实现代码零入侵自动生产接口文档。

我这里是已经下载过了的。

如果下载插件速度慢,也可以去 Jetbrains Marketplace 的官网下载(PS:根据你本地的IDEA版本下载对应的插件,千万不要下错了):Jetbrains Marketplace官网 

安装完成后,可以选择同步到 Apifox 项目中,也可以直接导出 markdown 文档。如果是同步到 Apifox 项目,还需要下载或注册 Apifox 软件,创建一个对应的项目: 

PS:强烈推荐同步到 Apifox 项目(原因后面会说到)

  • 注册/下载地址:Apifox官网 ;直接用微信扫一扫注册就行,非常便捷
  • 创建项目:登录apifox > 创建团队 > 新建项目,填入对应的项目名称

二、IDEA项目与Apifox项目关联

插件安装后,需要将 IDEA 内的项目与 Apifox 的项目进行关联,需要相关的配置,如下:

  1.  Apifox 服务器地址:默认的服务地址为 https://api.apifox.cn,直接用默认地址,不需要修改。
  2. 填写 Api 访问令牌:在 Apifox 个人头像处的账号设置中选择API 访问令牌,新建令牌后复制生成的 Token 填写到以上插件设置中。
  3. 模块项目 ID 配置: 这项主要是进行代码模块名和项目 ID 的映射关系配置。在 Apifox 中对应项目的项目设置中选择基本设置,复制并保存项目 ID,填写在以上的对应模块名处。

 

到这里,就完成全部的设置了,可以实现文档的自动生成和更新同步了。

PS:每个项目只需要开始的时候设置这一次,后面就不需要做这个操作了。 

三、自动生成接口文档

 PS:记得在Controller类上要加入@Api注解

 1.打开需要上传的 Controller 类,右键选择 Upload to Apifox

2.打开 Apifox 创建的项目,就可以看到刚才自动同步过来的文档了  

 3.当后续接口代码有变动或更新时,再次点击 Upload to Apifox 就可以同步

四、为什么强烈推荐同步到 Apifox 项目

这个插件虽然支持导出 markdown,但给别人分享文档的时候不是很方便,接口有改动文档也不会同步,需要反复的导出。使用 Apifox 项目就可以直接给别人分享一个链接,后期接口的更新也会直接同步,对方看到的永远是最新的。另外,Apifox 这个产品本身还有很丰富的 API 调试、Mock 、自动化测试等功能,你的前端和测试也可以直接在上面做后续的工作了。这里不细说,有兴趣的可以去找他们官方文档了解。

五、Apifox 与 Swagger区别  

很多开发都习惯用 Swagger,很多开源的项目中也集成了Swagger,用 Swagger 可以一定程度上解决自动生成文档的问题,但有一个很大的缺点:你需要写大量的注释,会对你的逻辑代码有入侵。并且在功能的全面性上不如 Apifox 。

  • Swagger:需要写注释,对逻辑代码有入侵,功能单一,不利于前后端对接联调;
  • Apifox:可以基本实现代码零入侵,使用标准的 Javadoc 注释就可以自动生成。同时它也支持同步 Swagger 的文档到项目里。还有 API Mock、自动化测试等延伸功能。

如果该文章对您有用,麻烦点赞 收藏 加关注哦!!! 万分感谢。

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

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

相关文章

qt 内存泄漏处理办法

windows 版本windows msvc版本可以使用vld检测可以得到内存泄漏点的调用堆栈,如果可以的话,还可以得到其所在文件及行号;可以得到泄露内存的完整数据;可以设置内存泄露报告的级别。缺点:1.只针对 Visual C &#xff08…

VUE -- defineExpose

defineExpose定义demo定义 defineExpose定义:用于组件通信中父级组件调用操作子组建方法和响应式属性参数能力 在使用definExpose前需要了解两个拷贝对象函数 对象copy:shallowReactive 与 数据 copy:shallowRef 这两个都是vue包里面的 简…

图片文字识别OCR调研-中文

直接看效果对比 tesseract-ocr 该识别引擎最新版本tesseract4添加了支持神经网络(LSTM)的,该引擎专注于线条识别, 同时也保留了Tesseract OCR 引擎,该引擎通过识别字符模式来工作。 我们需求端的后台语言是go&#x…

时尚高级实用,零跑C01满足各种用车需求

零跑C01在新能源车市场上销量可观且口碑较好,为什么消费者会相中这个国产车全域自主研发的新能源车呢?下面的介绍会给出答案。就其外观而言,零跑C01的外观定位于中大型轿车,在外观设计上充分考虑到美学观念。零跑给出了七个车身颜…

扬帆优配|日均客运量恢复,民航业加速复苏,外资买入2股超亿元

春运民航客运量康复至疫情前七成。 2月16日,民航局举行2月例行新闻发布会。会上介绍,自1月7日至2月15日,春运40天,民航运送旅客5523万人次,日均客运量138万人次,同比去年春运添加39%,康复至2019…

Lesson5.1---Python 之 NumPy 简介和创建数组

一、NumPy 简介 NumPy(Numerical Python)是 Python 的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比 Python 自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示…

【贰】嵌入式系统的分类

随手拍拍💁‍♂️📷 日期: 2022.08.31 地点: 杭州 介绍: 2022.08.31下午一点,在闷热的学校里实在是待不下去了,跑到了门口的钱塘江边散了一会儿步🚶正值盛夏,八月即将完结,日子越过越快&#x1…

FPGA MAX 10 10M50系列10M50DAF484C8G/10M50DAF484C7G/10M50DCF484C7G规格

介绍MAX 10器件是单芯片、非易失性低成本可编程逻辑器件(pld),用于集成最优的系统组件集。MAX 10设备的亮点包括:内部存储双配置闪存用户闪存即时支持集成模数转换器(adc)支持Nios II单芯片软核处理器MAX 10设备是系统管理、I/O扩展、通信控制平面、工业、汽车和消费…

ant design vue 组件中经常会出现 label过长被盖住的情况

ant design vue 组件中经常会出现 label过长被盖住的情况,我还特地找了解决方法:当过长时让他换行显示,还写了一篇博客记录,今天同样是写代码,但并没有做特殊的设置,结果却出乎意料的正常,过长自…

2023美赛A题:收干旱影响的植物群落(MCM)思路Python代码

赛题目的:分析干旱程度与植物群落中物种数量的关系赛题解读&解题思路链接: (1)这道题的难点是寻找数据,如果能找到干旱程度的适应性代表的指标以及对应植物群落物种的数量,那这道题基本上是迎刃而解,只需要简单去搭建一个预测模型即可仿真 (2)目标是对马萨马拉这个…

基于dll注入 读取任务管理器中指定进程的详细信息

关键字 注入dll,遍历ListView 技术调研背景 QA测试程序时,往往需要关注进程的性能指标,比如:CPU,GPU,内存,显存。最终根据各个采样数据,生成基于时间轴的状态表(类似任…

37.网络结构与模型压缩、加速-4

37.1 减少网络碎片化程度(分支数量) 模型中分支数量越少,模型速度越快 此结论主要是由实验结果所得。 以下为网络分支数和各分支包含的卷积数目对神经网络速度的影响。 实验中使用的基本网络结构,分别将它们重复10次,然后进行实验。实验结果如下: 由实验结果可知,随着网络…

【JVM与性能调优】JVM常用指令之Javap详解

一、JavaP 命令是什么? JavaP 命令是 Java 语言的一种工具 ,Java中一种反汇编器! 二、JavaP 命令的作用 帮助开发者深入了解 Java 编译器的机制显示字节代码含义显示编译类文件中的可访问功能和数据查看Java类文件中类和接口的内部结构显示…

Mybatis执行完新增操作后,对象的ID主键被修改了的原因【mybatis-spring-boot-starter开源项目的贡献者解答】

Mybatis执行完新增操作后,对象的Id主键被修改了的原因问题由来问题分析解决方案感谢问题由来 首先说下背景,项目的依赖是:mybatis-spring-boot-starter:1.3.2 进行新增操作后,一般来说入库就算完事了,但是除…

基础篇:04-Eureka服务注册与发现

目录 1.Eureka工程搭建启动 打开Idea-Service控制台 2.user-service接入并启动 2.1 引入pom依赖 2.2 更新配置文件 2.3 启动并查看Eureka信息 2.3 复制模拟多实例部署 3.order-service接入并启动 4.常见问题及解决方案 5.总结 6.推荐阅读资料 因前面提到Netflix相关…

webpack -- 无法将“webpack”项识别为 cmdlet

webpack : 无法将“webpack”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 1.检测是否是版本太高而只能使用脚手架进行打包 webpack4.x的打包已经不能用webpack 文件a …

phpStudy服务

1 概述 1.1 安装说明 1. 安装路径不能包含“中文”或者“空格”,否则会报错(例如错误提示:Cant change dir to G:\\x65b0\x5efa\x6587\)保证安装路径是纯净的,安装路径下不能有已安装的V8版本,若重新安装…

数据结构与算法基础-学习-12-线性表之顺序队

一、个人理解队列是线性表的衍生之一,具有先进先出的特性,在队尾进行插入操作,在队头进行删除操作。队列的存储结构分为两个大类,一种是顺序队,就是用数组实现。另一种就是链队,使用链表实现。顺序队存在真…

20基于主从博弈的智能小区代理商定价策略及电动汽车充电管理MATLAB程序

参考文档:《基于主从博弈的智能小区代理商定价策略及电动汽车充电管理》基本复现仿真平台:MATLABCPLEX/gurobi平台优势:代码具有一定的深度和创新性,注释清晰,非烂大街的代码,非常精品!主要内容…

Vue3路由传参

vue3路由和vue2差别不是很大,不过在传参形式上略有改变 在Vue3中使用路由必须引入 useRouter 和 useRoute import { useRoute, useRouter } from vue-routerconst Router useRouter() //跳转const Route useRoute() //获取到值 同Vue2一样,query使用p…