IDEA插件Apifox,一键自动生成接口文档!

2023-10-27

一、Apifox插件的优势

作为一名后端开发在项目开发过程中,肯定需要提供接口文档。

一般我们有两种方案

  1. 项目结合Swagger,自动生成接口文档。
  2. 手动将接口复制到其它接口文档,比如postman、Apifox。

第一种方案缺陷在于

  • 为了生成完整接口文档,我们会代码入侵且增加开发工作量
  • 当我们只需提供几个接口给第三方,总不能直接提供Swagger所有接口文档吧

第二种方案缺陷在于

  • 需要一个一个将接口写在对应的接口文档上,耗费大量时间
  • 当接口发生变更了,还需要修改下接口文档,会经常出现只修改接口忘记去修改接口文档的情况。

这时候这款插件神器就来了,它不仅可以解决上面的缺陷,而且还有更强大的功能,它可以支持直接在IDEA上做接口联调测试!

二、Apifox插件简单介绍

该插件主要用于 IDEA 项目快速生成 API 文档,并同步到 Apifox,代码零入侵

  • 基于 javadoc(Java)、KDoc(Kotlin)、ScalaDoc(Scala) 解析API文档。
  • 支持 Swagger 注解
  • 注意:可以在保持代码零侵入的情况下得到相当完整的 API 文档,但是特殊的需求还是需要部分特殊的注释/注解配合

功能特性

  • 导出 API 文档到 Apifox
  • 导出 Markdown 格式 API 文档
  • 在 IDEA 中直接发起 API 请求

三、IDEA安装插件

1、支持以下IDEA

  • IntelliJ IDEA 193.+(2019.3+)
  • IntelliJ IDEA Community Edition 174+(2017.4+)

2、搜索安装

  • 打开IDEA > Preferences(Settings) > Plugins ,搜索 Apifox Helper

安装完成后,你就可以使用上面说的功能特性了。

如果是同步到 Apifox 项目,你还需要下载或注册 Apifox 软件,创建一个对应的项目(这个具体操作看上面那篇文章就可以了)

四、 将IDEA项目和Apifox的项目关联

1、基础配置

安装插件后,进入设置界面 Preferences(Settings) > ApifoxUploader

1、 Apifox 服务器地址: 填写 Apifox API 服务地址,SaaS 版默认为 https://api.apifox.cn

2、 Apifox 个人访问令牌:就是你既然要同步到你的Apifox客户端,肯定需要在客户端拿到一个令牌

3、模块项目 ID 配置: 就是你要让IDEA知道 你要同步到Apifox客户端下面的哪个具体项目

2、个人访问令牌获取

在 Apifox软件中 点击个人头像处的 账号设置 中选择 API 访问令牌,新建令牌后复制生成的 Token 就是令牌。

3、模块项目 ID 配置

在 Apifox 中对应项目的 项目设置 中选择 基本设置,复制项目ID,填写在以上的对应位置处。

到目前为止,所有的准备设置工作都已经做好了,可以实现文档的自动生成和更新同步了。

五、自动生成接口文档测试

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

2.去 Apifox 项目内,就可以看到刚才自动同步过来的文档了(如果你已经在当前项目了需要点击一下刷新)。

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

六、直接在 IDEA 里调试

Apifox插件还有一个非常牛逼的功能就是支持在 IDEA 中一键发起接口自测,不需要切换其他软件。

在 IDEA 中选中需要调试的 API 文件,右键选择 Call API 发起请求就可以。

之后就可以在IDEA直接调试接口了,是不是非常方便!

还有许多细节的功能可以看他们的帮助文档,写的也非常的详细!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA插件Apifox,一键自动生成接口文档! 的相关文章

  • Netbeans 8.1 Gnome 3 GTK+ UI 字体和选项卡高度

    我刚刚在运行 GNOME 3 桌面的 Ubuntu 16 04 上安装了 NetBeans 8 1 如果可能的话 我想继续使用 IDE 的 GTK 外观和感觉 但 UI 上的字体 尤其是选项卡中的字体 太小且重叠 我尝试添加 fontsiz
  • 有没有创建 Cron 表达式的 Java 代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要一个 Java 代码来根据用户输入创建一个 cron 表达式 用户输入是时间 频率和执行次数 只需从评论中添加 自己创建 即可
  • 垃圾收集器如何在幕后工作来收集死对象?

    我正在阅读有关垃圾收集的内容 众所周知 垃圾收集会收集死亡对象并回收内存 我的问题是 Collector 如何知道任何对象已死亡 它使用什么数据结构来跟踪活动对象 我正在研究这个问题 我发现GC实际上会跟踪活动对象 并标记它们 每个未标记的
  • 如何调试“com.android.okhttp”

    在android kitkat中 URLConnection的实现已经被OkHttp取代 如何调试呢 OkHttp 位于此目录中 external okhttp android main java com squareup okhttp 当
  • Android studio - 如何保存先前活动中选择的数据

    这是我的代码片段 这Textview充当按钮并具有Onclicklistner在他们 当cpu1000时Textview单击它会导致cpu g1000其代码如下所示的类 public class Game 1000 extends AppC
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 将巨大的模式编译成Java

    有两个主要工具提供了将 XSD 模式编译为 Java 的方法 xmlbeans 和 JAXB 问题是 XSD 模式确实很大 30MB 的 XML 文件 大部分模式在我的项目中没有使用 所以我可以注释掉大部分代码 但这不是一个好的解决方案 目
  • 断言 Kafka 发送有效

    我正在使用 Spring Boot 编写一个应用程序 因此要写信给 Kafka 我这样做 Autowired private KafkaTemplate
  • 如何检查某个元素是否存在于一组项目中?

    In an ifJava中的语句如何检查一个对象是否存在于一组项目中 例如 在这种情况下 我需要验证水果是苹果 橙子还是香蕉 if fruitname in APPLE ORANGES GRAPES Do something 这是一件非常微
  • 将人类日期(当地时间 GMT)转​​换为日期

    我正在服务器上工作 服务器正在向我发送 GMT 本地日期的日期 例如Fri Jun 22 09 29 29 NPT 2018在字符串格式上 我将其转换为日期 如下所示 SimpleDateFormat simpleDateFormat ne
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • 在 Java 中获取并存储子进程的输出

    我正在做一些需要我开始子处理 命令提示符 并在其上执行一些命令的事情 我需要从子进程获取输出并将其存储在文件或字符串中 这是我到目前为止所做的 但它不起作用 public static void main String args try R
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • Java Swing - 如何禁用 JPanel?

    我有一些JComponents on a JPanel我想在按下 开始 按钮时禁用所有这些组件 目前 我通过以下方式显式禁用所有组件 component1 setEnabled false 但是有什么办法可以一次性禁用所有组件吗 我尝试禁用
  • 将 JavaFX FXML 对象分组在一起

    非常具有描述性和信息性的答案将从我这里获得价值 50 声望的赏金 我正在 JavaFX 中开发一个应用程序 对于视图 我使用 FXML
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • Log4j2 ThreadContext 映射不适用于parallelStream()

    我有以下示例代码 public class Test static System setProperty isThreadContextMapInheritable true private static final Logger LOGG
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似
  • Spring RESTful控制器方法改进建议

    我是 Spring REST 和 Hibernate 的新手 也就是说 我尝试组合一个企业级控制器方法 我计划将其用作未来开发的模式 您认为可以通过哪些方法来改进 我确信有很多 RequestMapping value user metho

随机推荐

  • 第十天Python之面向对象(OOP)基本概念

    面向对象编程 Object Oriented Programming 简写 OOP 目标 了解 面向对象基本概念 一 面向对象基本概念 我们之前学习的编程方式就是 面向过程 的 面向过程 和 面向对象 是两种不同的 编程方式 对比 面向过程
  • Linux学习笔记--rm命令(删除文件或目录)

    rm 英文名remove 删除的意思 1 命令格式 rm 选项 文件或目录 2 常用选项 rm f 强行删除 忽略不存在的文件 不提示确认 f为force的意思 rm i 进行交互式删除 即删除时会提示确认 i为interactive的意思
  • CentOS7.x系统中使用Docker时,在存储方面需要注意的问题

    简述 1 Docker 1 12 6 v17 03文档中CentOS7系统下安装时 明确说明 用于生产时 必须使用devicemapper驱动的direct lvm模式 需要我们提前准备好块设备 以提供更好的稳定性和性能 默认使用devic
  • Java阿里云短信发送工具类

    短信服务API介绍 阿里云短信发送 调用SendSms发送短信 短信服务 阿里云帮助中心
  • 基于Hutools图片上传下载

    1 pom依赖
  • Python视觉处理(二)线检测

    python线检测使用的时cv HoughLinesP 函数 它有两个参数 minLineLength 线的最短长度 比这个线短的都会被忽略 MaxLineGap 两条线之间的最大间隔 如果小于此值 这两条线就会被看成一条线 这个函数的返回
  • 物理层(1.物理层基本概念&2.数据通信基础知识)

    物理层的作用就是在连接计算机的传输介质上传输数据比特流 并且尽可能屏蔽掉传输媒体和通信手段的差异 一 物理层的基本概念 1 机械特性 指明接口所用接线器的形状和尺寸 引线数目和排列 固定和锁定装置等 2 电气特性 指明在接口电缆的各条线上出
  • 五大常用算法之三:动态规划

    动态规划 动态规划 Dynamic Programming 简称DP 需要分解出问题的子结构以及通过子结构重新构造最优解 动态规划不像回溯法 有套路可以套用 动态规划需要大量练习 才能掌握规律 一般思路 1 判断问题的子结构 有最优子结构时
  • vit网络模型简介

    目录 一 前言 1 1 Transformer在视觉领域上使用的难点 1 2 输入序列长度的改进 1 3 VIT对输入的改进 二 Vision Transformer模型 2 1 Embedding层 2 2 Transformer Enc
  • Java 8 – 从一个 Stream中过滤null值

    复习一个Stream 包含 null 数据的例子 Java8Examples java package com mkyong java8 import java util List import java util stream Colle
  • 人工智能涉及算法

    最近需要提交高级人工网络的课程论文 故查找一下资料 做如下记录 后期会继续补充部分算法的的详细内容 自己的理解和代码实现部分 人工智能的三大基石 算法 数据和计算能力 就算法来看 涉及如下几种 一 按照模型训练方式不同分类 可以分为监督学习
  • shell编程实现:依次提示用户输入3个整数,脚本根据数字大小依次排序输出3个数字。

    关于这个题目 有如下代码 bin bash read p 请输入一个整数 num1 read p 请输入一个整数 num2 read p 请输入一个整数 num3 tmp 0 if num1 gt num2 then tmp num1 nu
  • WXSS:微信小程序版CSS

    完整微信小程序 Java后端 技术贴目录清单页面 必看 WXSS WeiXin Style Sheets 是一套样式语言 用于描述 WXML 的组件样式 WXSS 用来决定 WXML 的组件应该怎么显示 为了适应广大的前端开发者 WXSS
  • MySQL 输入任何语句都提示You must reset your password using ALTER USER 解决方法

    安装并配置完成MySQL 5 7 21 修改第一次密码并登陆后 出现提示 You must reset your password using ALTER USER 的提示错误语句 解决办法如下 SET PASSWORD PASSWORD
  • 18-数据结构-查找-B树和B+树

    简介 B树和B 树 都是当存储数据较大时 从硬盘读取数据的优化 emm 我这么说有点迷糊 还是从应试考试的角度解释吧 B树和B 树 都是在二叉排序树的基础上 优化的 跟二叉排序树很像 但B树它由于相比于二叉排序树 降低了树高 即一个结点内可
  • ubuntu下安装和配置Qt5.12.8

    1 下载qt opensource linux x64 5 12 8 run 2 sudo qt opensource linux x64 5 12 8 run 这样会安装到 opt目录下 3 安装过程中 要先拔掉网线 再装 一路默认 到选
  • 动态路由协议EIGRP配置实战

    一 路由协议概述 1 路由协议简介 对于路由器而言 要找出最优的数据传输路径是一件比较有意义却很复杂的工作 最优路径有可能会有赖于节点间的转发次数 当前的网络运行状态 不可用的连接 数据传输速率和拓扑结构 为了找出最优路径 各个路由器间要通
  • Java:如何正确使用Timer【java定时器的使用(Timer) 】

    在需要按时间计划执行简单任务的情况下 Timer是最常被使用到的工具类 使用Timer来调度TimerTask的实现者来执行任务 有两种方式 一种是使任务在指定时间被执行一次 另一种是从某一指定时间开始周期性地执行任务 下面是一个简单的Ti
  • dataframe 转 字典

    背景 将商品id以及商品类别作为字典的键值映射 生成字典 原为DataFrame 创建一个DataFrame 列值类型均为int型 import pandas as pd item pd DataFrame item id 100120 1
  • IDEA插件Apifox,一键自动生成接口文档!

    一 Apifox插件的优势 作为一名后端开发在项目开发过程中 肯定需要提供接口文档 一般我们有两种方案 项目结合Swagger 自动生成接口文档 手动将接口复制到其它接口文档 比如postman Apifox 第一种方案缺陷在于 为了生成完