swagger 扫描java文档_推荐一款在运行时通过javadoc生成Swagger API文档的库
介绍
一般,我们使用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文档的库相关推荐
- mac java api文档_程序员必备 Dash for mac 各种语言和系统Api文档
Dash for mac 5.5.0 是一款功能强大的API文档浏览器和代码片段管理器,内置了丰富的API文档,多达150多种,可以在线下载各种开发API和文档资料,可以让您集中管理API文档,包括 ...
- 还在发愁写API文档?推荐一款阿里腾讯都在用的API管理神器!
欢迎关注方志朋的博客,回复"666"获面试宝典 前言 ❝ 程序员最讨厌的两件事:1. 写文档,2. 别人不写文档.大多数开发人员不愿意写 API 文档的原因:写文档短期收益远低于付 ...
- java 开源监控_推荐一款强大的国产开源监控系统!
项目简介 集监控点监控.日志监控.数据可视化以及监控告警为一体的国产开源监控系统,直接部署即可使用. 监控数据类型丰富,提供多种富有表现力的图表,满足对数据可视化的需要,目前支持折线图.饼图.地理位置 ...
- 什么插件格式化文档_推荐15款IntelliJ IDEA 神级插件
满满的都是干货 所有插件都是在 ctrl+alt+s 里的plugins 里进行搜索安装 1.CodeGlance 代码迷你缩放图插件 2. Codota 代码提示工具,扫描你的代码后,根据你的敲击完 ...
- java反向映射_推荐一款Java对象映射神器,别再傻傻手动转换了!
点击蓝色字免费订阅,每天收到这样的好信息 前言:最近有不少粉丝关注本公众号.并且我已经成功开通了流量主同时会赚一点点广告费,我打算每个月把这部分钱拿出来给大家买点书刊,算是给大家一点福利吧.大家想买什 ...
- java计算机毕业设计个性化推荐的扬州农业文化旅游管理平台源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计个性化推荐的扬州农业文化旅游管理平台源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计个性化推荐的扬州农业文化旅游管理平台源程序+mysql+系统+lw文档+远 ...
- java计算机毕业设计智能推荐二手车交易网站源码+mysql数据库+系统+部署+lw文档
java计算机毕业设计智能推荐二手车交易网站源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智能推荐二手车交易网站源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目 ...
- Spring Boot 集成 Swagger 生成 RESTful API 文档
原文链接: Spring Boot 集成 Swagger 生成 RESTful API 文档 简介 Swagger 官网是这么描述它的:The Best APIs are Built with Swa ...
- Api2Doc,生成 Restful API 文档
Api2Doc 简介 Api2Doc 专注于 Restful API 文档的自动生成,它的原理与 Swagger2 是类似的, 都是通过反射,分析 Controller 中的信息生成文档,但它要比 S ...
最新文章
- 《DDIA》读书笔记(一):可靠性、可扩展性、可维护性
- C++复制控制:拷贝构造函数
- 卫星的性能和服务器比较,卫星通信的常用频段的详细对比
- 基于Spring读写分离
- 第十一节:特性(常见的特性标签、自定义特性、特性的使用案例)
- 【Paper-Attack】Exploratory Adversarial Attacks on Graph Neural Networks
- iPhone XR降价匹敌iPhone11:64GB到手仅4199元
- WITH ROLLUP、WITH CUBE、GROUPING语句的应用
- 直接点oracle表编辑,ORACLE SQL 知识点(随时编辑)
- python爬取快手视频_【原创开源】快手爬虫,根据id批量爬取用户的所有图集和视频...
- 显卡dos测试软件,A+N卡测试说明_早期显卡DOS版本
- 英语词根词缀+联想法记忆单词
- 中国县级和以下行政区编码,2013年,sql文件
- android 收税计算器,个人所得税计算器2021
- ClickHouse 冷热分离存储在得物的实践
- 2019天津市计算机等级考试报名时间,天津2020上半年计算机等级考试报名时间已公布...
- 电商平台性能测试报告
- linux怎么查看证书库,curl --resolve 查看证书情况
- jQuery笔试题汇总整理--2018
- [NPUCTF2020]ezlogin xPATH注入
热门文章
- 深夜,在这个已不再喧嚣的城市中寻找到一片属于自己的宁静,仰望那片属于自己的星空……...
- 用vue语法写html,Vue -- 模板语法
- ubuntu的mysql教程 pdf_Ubuntu上的MySQL字符集设置技巧
- 信息学奥赛一本通(1315:【例4.5】集合的划分)
- 蜥蜴与地下室(51Nod-1489)
- 流感传染(信息学奥赛一本通-T1191)
- 甲流疫情死亡率(信息学奥赛一本通-T1011)
- 信息学奥赛C++语言: 回文数个数
- vue 得到枚举个数_Package - vue-enum
- linux控制器错误码,ubuntu – 不频繁的输入/输出错误 – Linux服务器