XDoc 基于Java注释生成API文档

<!--加入maven依赖-->
<dependency><groupId>com.github.treeleafj</groupId><artifactId>spring-boot-starter-xDoc</artifactId><version>1.1.0</version>
</dependency>
@EnableXDoc //<--- 加上此注解以便启用XDOC在线HTML文档
@SpringBootApplication
public class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);}
}
#在application.properties配置项目源码的位置,直接在项目里启动时,如果是单模块的maven项目,默认可以不配置
xdoc.enable=true #是否启动XDoc,默认是true,生产环境建议改为false
xdoc.sourcePath=F:/java/project/xDoc/samples/sample-springboot/src/main/java   #源码路径,多个路径时用英文逗号隔开
xdoc.title=用户中心接口文档   #用于配置文档页面标题
xdoc.version=1.0   #标识接口文档的版本号

测试代码(Controller)

/*** 用户模块** @author treeleaf* @date 2017-03-03 10:11*/
@Controller
@RequestMapping("api/user")
public class UserController {/*** 登录** @param username 用户名|必填* @param password 密码* @return 当前登录用户的基本信息* @resp code 返回码(0000表示登录成功,其它表示失败)|string|必填* @resp msg 登录信息|string* @resp username 登录成功后返回的用户名|string*/@ResponseBody@PostMapping("login")public Map<String, String> login(String username, String password) {Map<String, String> model = new HashMap<>();model.put("code", "0000");model.put("msg", "登录成功");model.put("username", username);return model;}/*** 用户注册** @param user :username 用户名|必填* @param user :password 密码* @return 注册后生成的用户的基本信息* @respbody {"id":"123","password":"123456","username":"admin"}* @see User*/@ResponseBody@RequestMapping(value = "register", method = {RequestMethod.POST, RequestMethod.PUT})User register(User user) {user.setId(UUID.randomUUID().toString());return user;}
}

最后直接访问 http://localhost:8080/xdoc/index.html

二:离线文档

html:

/*** 生成离线的HTML格式的接口文档*/
@Test
public void buildHtml() throws Exception {/**注意!!!路径必须是要能扫描到源码工程的路径,执行生成的文件打开没有接口目录,说明没扫描到,请优先确认自己传入的路径是否正确!!!*/FileOutputStream out = new FileOutputStream(new File(userDir, "api.html"));XDoc xDoc = new XDoc(new File("F:/java/project/xDoc/samples/sample-springboot/src/main/java"), new SpringWebHttpFramework());xDoc.build(out, new HtmlForamt());
}

markdown:

/*** 生成离线的Markdown格式的接口文档*/
@Test
public void buildMarkdown() {/**注意!!!路径必须是要能扫描到源码工程的路径,执行生成的markdown如果没有接口内容,说明没扫描到,请优先确认自己传入的路径是否正确!!!*/ByteArrayOutputStream out = new ByteArrayOutputStream();XDoc xDoc = new XDoc(new File("F:/java/project/xDoc/samples/sample-springboot/src/main/java"), new SpringWebHttpFramework());xDoc.build(out, new MarkdownFormat());System.out.println(out.toString());
}

注释标签用法:

@title 接口标题,如果不加这个,默认读的是接口注释上第一行的描述内容

@param 接口入参, 格式为: “参数名 参数描述|(参数类型)|(是否必填)” 其中"参数类型"可不填,默认是String, "是否必填"可不填,默认为非必填, "是否必填"的取值有必填(Y),非必填(N),具体常用的格式如下: username 用户名 username 用户名|必填 或者 username 用户名|Y username 用户名|非必填 或者 username 用户名|N username 用户名|String username 用户名|String|必填

针对IDEA的在使用Java自身的@param注释注解时,如果上面的参数名在当前方法入参上是没有的,是会提示错误的,为了解决这种问题,XDoc支持在注释的参数名称前面加上冒号:来避开IDEA的检测,如: :username 用户名 或者 user :username 用户名

@paramObj 当觉得入参本身就在一个Dto中,但是要一个个@param去加会比较麻烦时,可以用@paramObj指定入参的Dto对象,用法同@see,但是@paramObj支持一个接口方法出现多个,同时,@param与@paramObj混用,@paramObj对象中的某个属性名与@param的参数名冲突时,会优先以@param的为准, 使用可参考samples中的AccountController.java

@resp 指定返回的参数,格式同@param

@respbody 指定返回数据的demo,暂只支持对json数据进行格式化,仅用于展示,使用可参考samples中的UserController.java

@see 指定返回的出参对象,类似@paramObj,不过一个是入参,一个是出参,一个方法只能出现一个@see,同时,跟@resp混用时有属性名冲突,以@resp的为准, 使用可参考samples中的AccountController.java

@return 返回信息的描述,内容为纯文本,仅用于展示

@IgnoreApi 这个是注解,不是放在注释上的,用于标注哪些接口不需要生成接口文档

XDoc 基于Java注释生成API文档相关推荐

  1. 使用sphinx快速为你python注释生成API文档

    sphinx简介 sphinx是一种基于Python的文档工具,它可以令人轻松的撰写出清晰且优美的文档,由Georg Brandl在BSD许可证下开发.新版的Python3文档就是由sphinx生成的 ...

  2. 使用Sandcastle 基于代码注释生成接口文档

    一. 工具下载: 1. Sandcastle:Sandcastle是微软官方的文档生成工具,下载地址:http://www.codeplex.com/Sandcastle 2. SHFBGuidedI ...

  3. java如何生成api文档_api文档自动生成工具

    java开发,根据代码自动生成api接口文档工具,支持RESTful风格,今天我们来学一下api-doc的生成 预览 在线预览地址 开发原理 这个工具是一个典型的前后端分离开发的项目,想了解前后端分离 ...

  4. 干掉 Swagger + Postman?测试接口直接生成API文档,这个国产文档工具真香!

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  5. java apidoc案例_java 自动生成api 文档 :apidoc

    官网:apidocjs 首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,适用于java项目.跟已有的项目框架没有任何关系 一.apidoc简介 apidoc通 ...

  6. java文档注释生产api没有注释_一个神奇的没有springboot注释的api文档生成器---JApiDocs...

    入门 支持JDK:1.8+ 快速开始 第一步:添加依赖 maven: io.github.yedaxia japidocs 1.4.3 gradle: compile 'io.github.yedax ...

  7. Java支持latex,基于Java和LaTeX的文档自动生成技术研究

    基于Java和 LaTeX 的文档 自动生成技术研究 ◆尚宝欣 徐 屹 (东北电力大学理学院,吉林 长春 132012) [摘 要]讨论了结合Java与LaTex 自动生成 PDF文档的方法.针 展名 ...

  8. java接口注释_Java的注释和API文档

    Java 语言的注释一共有三种类型: 单行注释 多行注释 文档注释 一.单行注释和多行注释 单行注释就是在程序中注释一行代码,在 Java 语言中,将双斜线(//)放在需要注释的内容之前就可以了 : ...

  9. Javadoc (Java API 文档生成器)详解 [Javadoc 概述][Javadoc 标签][Javadoc 命令][Javadoc 生成 API 文档]

    您的"关注"和"点赞",是认可,是支持,是动力. 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 文章目录 1 Javad ...

最新文章

  1. 文件名转换为utf8 c语言,文件名编码转换:从 gb* 转向 utf8 必备工具 convmv
  2. ue4蓝图节点手册中文_在UE4中播放视频
  3. n维椭球体积公式_混凝土工程量计算规则及公式
  4. python 基础
  5. 异常分析 (空间太小)
  6. 1.2鼠标移入移出改变背景色和其他大小样式
  7. beego 优雅重启
  8. SpringBoot项目@Email不起作用
  9. apache mod_autoindex 详解
  10. oracle 本地数据库卸载,完美卸载Oracle数据库
  11. 深入了解触摸事件的分发
  12. 三、Linux 教程-基础命令(181~完)
  13. yum安装报错:ImportError: No module named urlgrabber.grabber
  14. Python开发Windows桌面应用程序(一)PyCharm+PyQt5开发环境搭建
  15. getchar 和 getch区别
  16. 云端部署 vs 本地化部署
  17. 什么是熵(entropy)?
  18. 被Linux之父骂醒?英伟达破天荒开源GPU内核驱动,网友:活久见
  19. python calu()_python使用配置文件过程详解
  20. NVIDIA Deepstream 4.0笔记(一):加速基于实时AI的视频和图像分析

热门文章

  1. 十六进制(二进制)编辑器
  2. kali 通过setoolkit-网站克隆获得账户密码
  3. 试述科学精神的核心意蕴
  4. 鼎捷ERP二维码整体解决方案 Tiptop GP条码管理系统 鼎捷ERP移动解决方案 鼎捷条码扫描 鼎捷WMS仓库移动扫码 鼎捷安卓PDA扫码方案 Tiptop 出入库盘点出货条码扫码
  5. 网络考试系统主要由哪些功能模块组成
  6. Linux环境下的c语言编程
  7. loopback 搭建
  8. Codeforces Round #777 (Div. 2) (A-D题解)
  9. sp3485电路设计
  10. docker修改mysql数据库密码,redis密码