写文档太麻烦,试试这款 IDEA 插件吧!

简介: 每次开发完新项目或者新接口功能等,第一件事就是提供接口文档。说到接口文档,当然是用 Markdown 了。各种复制粘贴字段,必填非必填,字段备注,请求返回示例等等。简直是浪费时间哇。所以想到了开发一款插件来解决重复复制文档的问题。下面来看我介绍介绍这款插件。PS:插件比较简陋,还需要不断迭代。

网络异常,图片无法展示
|


前言


每次开发完新项目或者新接口功能等,第一件事就是提供接口文档。说到接口文档,当然是用 Markdown 了。各种复制粘贴字段,必填非必填,字段备注,请求返回示例等等。简直是浪费时间哇。所以想到了开发一款插件来解决重复复制文档的问题。下面来看我介绍介绍这款插件。

PS:插件比较简陋,还需要不断迭代。


为什么开发插件


每次在对外提供接口时都要写文档,各种麻烦,并且文档耗费了很大一部分时间。也使用了一些文档工具,在线写作工具,最终还是比较喜欢自己手写文档。


使用过的生成工具

  1. Swagger : 添加依赖,配置类及描述信息,然后在方法及实体上添加注解,启动项目便可以通过访问 xxxx/swagger-ui.html 查看接口文档;
  2. API Doc :添加配置文件及注释,安装 npm 并通过执行命令生成文档;
  3. SmartDoc :添加依赖及注释后执行测试类生成文档;
  4. API2DOC :添加依赖,开启注解,通过注解配置生成文档。

上面四种方法,无疑都需要添加依赖,使用注解等方式,可以说有一定的代码侵入性。


使用过的接口文档工具

  1. ShowDoc :曾经一段时间很喜欢用这个, Markdown 语法,方便直观。不过就是要自己手写;
  2. YApi :现在在使用 YApi,可以通过 Swagger 导入;
  3. VS Code 写 Markdown :直接离线写 Markdown ,可以导出 PDF、Word、Html。

自己写文档比较重复,繁琐,不过个人比较喜欢 Markdown 格式。简洁直观。并且配合着我之前写的 IDEA 插件 copy-as-jsonTookit 将实体复制为 json 字符串,用来快速生成请求样例和返回样例,还是可以减少一定的工作量的。


其他使用方式

使用各种在线协作工具,腾讯文档、语雀、石墨文档。使用离线版本 PDF、Word、Excel 等等。也有一些其他的文档工具,不过自己都没有使用过或者调研过了。

基本上这些文档工具要么通过代码侵入的方式生成文档,要么自己手撸文档。总体来说各有千秋。


个人手写更方便

个人比较喜欢的就是手写 Markdown 。

下面是两幅图:

网络异常,图片无法展示
|

网络异常,图片无法展示
|

有时候文档比较多的时候,就写的累了。尤其是最近使用了 YApi , 个人感觉使用 Swagger 然后导入到 YApi 里面还是挺方便的,省时省力。

后来就想,既然 YApi 提供接口,那我是不是可以自己生成,然后传到 YApi 中呢?

所以就开始着手这个插件的开发。


使用及功能


既然已经开发好最基础版本了,当然也得介绍下,首先看图:

网络异常,图片无法展示
|

通过图简单介绍下使用以及功能:


使用

使用方式很简单,直接在 Controller 类或者 Controller 类的公共非静态方法内右键唤出菜单,单机 Doc View 即可。

网络异常,图片无法展示
|

只能在 Controller 类或者 Controller 类的公共非静态方法内使用。至于两者的区别,后续会介绍。

这里可能会有小伙伴们发出疑问:Dubbo 接口也要写文档,难道不可以么?

嗯~ 可以!但是现在不支持~


功能

基本功能就是截图展示的那样。

  1. 左侧显示接口名及列表,右侧展示接口信息;
  2. 点击 Copy 按钮 就会将展示的信息原本对应的 Markdown 文本复制到剪贴板;
  3. 在 Class 内部点击,生成的如图所示的列表,而在方法内右键生成的是只有本方法的。


使用说明


Dubbo 接口,当前版本不支持,所以下面介绍的全都是在 Class 上的使用:


要生成文档,需要满足什么条件?

  1. 目标类内部有方法;
  2. 类必须有相关Spring注解。
  1. org.springframework.stereotype.Controller
  2. org.springframework.web.bind.annotation.RestController


生成文档,接口方法需要满足什么条件?

文档的方法:Public 修饰且非静态方法(static 修饰),方法上包含以下注解:

  1. org.springframework.web.bind.annotation.GetMapping
  2. org.springframework.web.bind.annotation.PostMapping
  3. org.springframework.web.bind.annotation.GetMapping
  4. org.springframework.web.bind.annotation.DeleteMapping
  5. org.springframework.web.bind.annotation.PatchMapping
  6. org.springframework.web.bind.annotation.RequestMapping


文档模版是否可以设置?

当前版本文档模版只有展示的这个,不支持自定义模版。


接口名称是如何设置的?

  1. 接口名称默认取值如图截图所示 类名#方法名
    网络异常,图片无法展示
    |

  2. 支持在注释上使用 @name 设置接口名。
    网络异常,图片无法展示
    |


接口描述是从哪里获取的?

  1. 接口描述直接取的方法注释;
  2. 如果有 @description 标签,则会优先使用标签对应的描述。
    网络异常,图片无法展示
    |


请求路径是如何生成的?

ClassMethod 上的 path 进行拼装组成。


请求方式如何设置?

根据 Method 上的注解生成。


请求参数及请求示例的需要设置什么?

  1. 根据是否有 @RequestBody 注解,生成请求 Header 是否为 json 还是 form。同时会检测请求参数中是否有 @RequestHeader 注解;
    网络异常,图片无法展示
    |

  2. 对象生成列表;
  3. 根据请求是 json 还是 form 生成对应的请求示例。


返回参数及返回示例怎么生成?

支持对象,返回空,返回带泛型方式。这里的泛型仅支持单个泛型且名称为 T

网络异常,图片无法展示
|


总结


Q&A

Q: Doc View 插件去哪里下载?

A:

  1. 可以直接通过 IDEA 插件仓库,直接搜索名称即可;
  2. 在 GitHub 通过 Releases 下载;
  3. 关注公众号并发送 Doc View 相关关键字(doc/doc view)获取。


Q: Doc View 是否开源?

A: 是的。开源地址为:github.com/liuzhihang/…,有兴趣的小伙伴,可以给个 Star ,如果想增加一些功能,也可以提 PR。


结束语


插件开发从最开始开发到今天发布第一版,中间经历了很长一段时间,毕竟只是业余时间开发,就断断续续的写,不过现在最简单版本已经可以使用了。

目前来看,只有一个 Copy 功能,不过基本上可以满足使用。至于其他的需求,比如:自定义模版、支持 Dubbo 接口、预览导出等功能就需要后续不断迭代了。

个人开发精力有限,小伙伴在使用过程中遇到肯定会遇到 bug,或者是有其他的功能及使用建议,都可以通过以下方式反馈:

  1. 关注公众号:『 刘志航 』 通过读者讨论进行留言;
  2. 在 GitHub 上提 Issues;
  3. 在插件帮助页面留言;
  4. 文章结尾留言;

最后,感谢小伙伴们的支持。欢迎下载体验,并提出相关建议及意见。

目录
相关文章
|
23天前
|
IDE 程序员 开发工具
IDEA插件-IKun Progress 坤坤成IDEA进度条了
"IKun Progress"是一款适用于JetBrains IntelliJ IDEA等IDE的插件,该插件能够将标准的进度条替换为一个有趣且独特的篮球动画,其中的角色名为坤坤(Kun Kun)。它旨在为您的IDE使用过程增添一些娱乐和轻松的氛围。 该插件让您可以在执行IDE中的任务时享受到更加视觉上吸引人的进度指示器,例如构建、运行测试或其他涉及进度条的操作。相比传统的普通进度条,您将看到坤坤在打篮球,给您的开发工作流程增添了一份乐趣。
196 0
IDEA插件-IKun Progress 坤坤成IDEA进度条了
|
23天前
|
IDE 程序员 开发工具
IDEA插件-Mario Progress Bar马里奥进度条
"Mario Progress Bar"是一款适用于JetBrains IntelliJ IDEA等IDE的插件,它基于Dmitry Batkovitch开发的Nyan Progress Bar。该插件会将进度条样式变成马里奥游戏中的角色。基本的进度条显示为带有一些砖块的马里奥形象,而不确定状态的进度条显示为一个乌龟壳。一旦安装完成,您可以在IDE的设置中找到插件的配置选项(Settings > Tools > Mario Progress Bar),在此处选择您喜欢的角色形象。
IDEA插件-Mario Progress Bar马里奥进度条
|
22天前
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
145 2
[JarEditor]可直接修改jar包的IDEA插件
|
23天前
|
Java Maven
idea安装并使用maven依赖分析插件:Maven Helper
idea安装并使用maven依赖分析插件:Maven Helper
136 7
|
22天前
|
JSON Java Maven
几个适合Java开发者的免费IDEA插件
【7月更文挑战第15天】以下是适合Java开发者的免费IDEA插件: - **Test Data**: 生成用于单元测试的随机数据,支持多种格式如JSON、CSV等。 - **SonarLint**: 实时检测并修正代码质量问题,提供详细的风险分析。 - **Maven Helper**: 提供pom.xml文件的UI界面,便于管理Maven项目依赖。 - **RestFulTool**: 辅助RESTful服务开发与测试,尤其适合Spring MVC和Spring Boot项目。 - **EnvFile**: 在IDE内部设置运行配置的环境变量,支持YAML、JSON等格式。
|
23天前
|
SQL 监控 Java
IDEA插件-Mybatis Log Free日志替换
MyBatis Log Free 是一个免费的用于在 IntelliJ IDEA 中显示 MyBatis 日志的插件。它可以帮助您更方便地查看和分析 MyBatis 的 SQL 执行情况,以及定位潜在的性能问题,提高开发效率。
105 0
IDEA插件-Mybatis Log Free日志替换
|
23天前
|
JavaScript 关系型数据库 Java
IDEA插件-EasyCode
EasyCode是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理论上来说只要是与数据有关的代码都是可以生成的。
IDEA插件-EasyCode
|
23天前
|
程序员 开发者
IDEA插件-Power Mode II键盘炫酷效果
Power Mode II 是一款为 IntelliJ IDEA 设计的插件,旨在为编码过程增添动感和趣味性。这款插件通过在代码编写时添加视觉特效、声音效果和其他动态元素,为开发者提供了一个独特且富有创意的编程体验。
IDEA插件-Power Mode II键盘炫酷效果
|
23天前
|
数据可视化 Java 程序员
IDEA插件-Maven Helper
Maven Helper是一个用于Apache Maven项目的IntelliJ IDEA插件,它提供了一些有用的功能来帮助开发人员更好地管理和调试Maven项目。
IDEA插件-Maven Helper
|
23天前
|
IDE 程序员 开发工具
IDEA插件-Material Theme UI/IDEA最强主题插件/IDEA图标美化
"Material Theme UI" 是一个用于 JetBrains IDE(如 IntelliJ IDEA、WebStorm、Android Studio 等)的插件,它将原始外观改为 Material Design 风格,并提供丰富的选项来根据个人喜好配置 IDE。
202 0
IDEA插件-Material Theme UI/IDEA最强主题插件/IDEA图标美化