介绍

一般,我们使用Springfox生成swagger api文档,但Springfox不支持从javadoc中生成,只能通过注解的方式标注文档。

这样,当共享一些POJO类时,为了同时生成javadoc文档和swagger文档,需要重复写两份。

此外,当使用swagger注解时,一般如下使用:

@ApiParam(name="parameterA",value="参数A")

public void path(@PathVariable String parameterA, String parameterB)

其中,name指定了参数的名字,这种通过字符串的方式没有IDE的重构支持。

而通过javadoc指定的方式有IDE的重构支持,当重命名变量名时,会一起修改javadoc中的变量名。

如:

/**

* path 变量

* @param parameterA 参数A

* @param parameterB 参数B

*/

@PostMapping("/path/{parameterA}/{parameterB}")

public void path(@PathVariable String parameterA, String parameterB)

{

}

通过使用RestDoc库,代码如下:

/**

* body 里的复杂对象

*/

@PostMapping("/body/complex")

public void complex(@RequestBody ParameterA obj)

{

}

/**

* path 变量

* @param parameterA 参数A

* @param parameterB 参数B

*/

@PostMapping("/path/{parameterA}/{parameterB}")

public void path(@PathVariable String parameterA, String parameterB)

{

}

效果如下:

使用

第一步,配置pom,配置RestDocConfig

在SpringBoot中,增加依赖:

cn.willingxyz.restdoc

RestDocSpringSwagger3

0.2.0.0-beta1

对于JavaConfig,配置如下:

@Bean

RestDocConfig _swaggerConfig()

{

return RestDocConfig.builder()

.apiTitle("rest doc title")

.apiDescription("rest doc desc")

.apiVersion("api version")

// .fieldPrefix("_")

.packages(Arrays.asList(""))

.build();

}

其中 packages 表示要扫描的基础包名,如 packages(Arrays.asList("cn.willingxyz.restdoc.springswagger3.examples"))

其中 fieldPrefix表示字段前缀。

因为在获取javadoc时,会从field、get方法、set方法上获取,因此如果field有前缀,需要通过fieldPrefix设置,否则将无法获取到javadoc。

如:

public class Response {

/**

* name javadoc

*/

private String _name;

public String getName() {

return _name;

}

public void setName(String name) {

_name = name;

}

}

Name属性对应的字段是_name,因此 fieldPrefix应该设置为 .fieldPrefix("_")

第二步,在需要生成javadoc的项目中,增加如下依赖:

com.github.therapi

therapi-runtime-javadoc-scribe

0.9.0

provided

具体可参考 RestDocSpringExamples。

原理

通过注解处理器在编译时生成javadoc的json文件。

在运行时读取生成的javadoc文件。

swagger 扫描java文档_推荐一款在运行时通过javadoc生成Swagger API文档的库相关推荐

  1. mac java api文档_程序员必备 Dash for mac 各种语言和系统Api文档

    Dash for mac  5.5.0 是一款功能强大的API文档浏览器和代码片段管理器,内置了丰富的API文档,多达150多种,可以在线下载各种开发API和文档资料,可以让您集中管理API文档,包括 ...

  2. 还在发愁写API文档?推荐一款阿里腾讯都在用的API管理神器!

    欢迎关注方志朋的博客,回复"666"获面试宝典 前言 ❝ 程序员最讨厌的两件事:1. 写文档,2. 别人不写文档.大多数开发人员不愿意写 API 文档的原因:写文档短期收益远低于付 ...

  3. java 开源监控_推荐一款强大的国产开源监控系统!

    项目简介 集监控点监控.日志监控.数据可视化以及监控告警为一体的国产开源监控系统,直接部署即可使用. 监控数据类型丰富,提供多种富有表现力的图表,满足对数据可视化的需要,目前支持折线图.饼图.地理位置 ...

  4. 什么插件格式化文档_推荐15款IntelliJ IDEA 神级插件

    满满的都是干货 所有插件都是在 ctrl+alt+s 里的plugins 里进行搜索安装 1.CodeGlance 代码迷你缩放图插件 2. Codota 代码提示工具,扫描你的代码后,根据你的敲击完 ...

  5. java反向映射_推荐一款Java对象映射神器,别再傻傻手动转换了!

    点击蓝色字免费订阅,每天收到这样的好信息 前言:最近有不少粉丝关注本公众号.并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧.大家想买什 ...

  6. java计算机毕业设计个性化推荐的扬州农业文化旅游管理平台源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计个性化推荐的扬州农业文化旅游管理平台源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计个性化推荐的扬州农业文化旅游管理平台源程序+mysql+系统+lw文档+远 ...

  7. java计算机毕业设计智能推荐二手车交易网站源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智能推荐二手车交易网站源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智能推荐二手车交易网站源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目 ...

  8. Spring Boot 集成 Swagger 生成 RESTful API 文档

    原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...

  9. Api2Doc,生成 Restful API 文档

    Api2Doc 简介 Api2Doc 专注于 Restful API 文档的自动生成,它的原理与 Swagger2 是类似的, 都是通过反射,分析 Controller 中的信息生成文档,但它要比 S ...

最新文章

  1. 《DDIA》读书笔记(一):可靠性、可扩展性、可维护性
  2. C++复制控制:拷贝构造函数
  3. 卫星的性能和服务器比较,卫星通信的常用频段的详细对比
  4. 基于Spring读写分离
  5. 第十一节:特性(常见的特性标签、自定义特性、特性的使用案例)
  6. 【Paper-Attack】Exploratory Adversarial Attacks on Graph Neural Networks
  7. iPhone XR降价匹敌iPhone11:64GB到手仅4199元
  8. WITH ROLLUP、WITH CUBE、GROUPING语句的应用
  9. 直接点oracle表编辑,ORACLE SQL 知识点(随时编辑)
  10. python爬取快手视频_【原创开源】快手爬虫,根据id批量爬取用户的所有图集和视频...
  11. 显卡dos测试软件,A+N卡测试说明_早期显卡DOS版本
  12. 英语词根词缀+联想法记忆单词
  13. 中国县级和以下行政区编码,2013年,sql文件
  14. android 收税计算器,个人所得税计算器2021
  15. ClickHouse 冷热分离存储在得物的实践
  16. 2019天津市计算机等级考试报名时间,天津2020上半年计算机等级考试报名时间已公布...
  17. 电商平台性能测试报告
  18. linux怎么查看证书库,curl --resolve 查看证书情况
  19. jQuery笔试题汇总整理--2018
  20. [NPUCTF2020]ezlogin xPATH注入

热门文章

  1. 深夜,在这个已不再喧嚣的城市中寻找到一片属于自己的宁静,仰望那片属于自己的星空……...
  2. 用vue语法写html,Vue -- 模板语法
  3. ubuntu的mysql教程 pdf_Ubuntu上的MySQL字符集设置技巧
  4. 信息学奥赛一本通(1315:【例4.5】集合的划分)
  5. 蜥蜴与地下室(51Nod-1489)
  6. 流感传染(信息学奥赛一本通-T1191)
  7. 甲流疫情死亡率(信息学奥赛一本通-T1011)
  8. 信息学奥赛C++语言: 回文数个数
  9. vue 得到枚举个数_Package - vue-enum
  10. linux控制器错误码,ubuntu – 不频繁的输入/输出错误 – Linux服务器