首页 > 其他分享 >SpringBoot集成JApiDocs实现自动生成接口文档

SpringBoot集成JApiDocs实现自动生成接口文档

时间:2023-07-10 10:35:47浏览次数:46  
标签:Java SpringBoot 生成 文档 config DocsConfig JApiDocs


一、概念

JApiDocs 是一个符合 Java 编程习惯的 Api 文档生成工具。最大程度地利用 Java 的语法特性,你只管用心设计好接口,添加必要的注释,JApiDocs 会帮你导出一份漂亮的 Html 文档,并生成相关的 Java 和 Object-C 相关数据模型代码,从此,Android 和 IOS 的同学可以少敲很多代码了,你也不需要费力维护接口文档的变化,只需要维护好你的代码就可以了。

二、特性

  1. 以一个 Controller 作为一组接口导出到一个 Html 文件中。
  2. 支持生成 Java 和 Object-C 语言的 Response 模型代码。
  3. 深度支持 Spring Boot, PlayFramework,JFinal,不需要额外声明路由。
  4. 支持一般的 Java Web 工程,需要在相关方法添加额外的路由。
  5. 支持接口声明过时(@Deprecated),方便的文档目录等。
  6. 支持自定义代码生成模板。
  7. 支持集成发布到 RAP。
  8. :new: 支持多模块、泛型。

三、搭建

参考网址: https://japidocs.agilestudio.cn/#/zh-cn/

第一步:添加依赖

maven:

<dependency>
  <groupId>io.github.yedaxia</groupId>
  <artifactId>japidocs</artifactId>
  <version>1.4.2</version>
</dependency>

gradle:

compile 'io.github.yedaxia:japidocs:1.4.2'

第二步:配置参数

你可以在任意一个main入口运行下面的代码:

DocsConfig config = new DocsConfig();
config.setProjectPath("your springboot project path"); // 项目根目录
config.setProjectName("ProjectName"); // 项目名称
config.setApiVersion("V1.0");       // 声明该API的版本
config.setDocsPath("your api docs path"); // 生成API 文档所在目录
config.setAutoGenerate(Boolean.TRUE);  // 配置自动生成
Docs.buildHtmlDocs(config); // 执行生成文档

我的配置

package com.kero99.utils;
import io.github.yedaxia.apidocs.Docs;
import io.github.yedaxia.apidocs.DocsConfig;
/**
 * 接口文档自动生成工具
 * @author ygc
 *
 */
public class DocUtil {
		public static void main(String[] args) {
			DocsConfig config = new DocsConfig();
			// 项目根目录
			config.setProjectPath("D:\\java\\Eclipse项目\\20200817_V1.0_soilgis"); 
			// 项目名称
			config.setProjectName("20200817_V1.0_soilgis"); 
			// 声明该API的版本
			config.setApiVersion("20200817_V1.0_soilgis");    
			//生成API 文档所在目录
			config.setDocsPath("C:\\新建文件夹");
			// 配置自动生成
			config.setAutoGenerate(Boolean.TRUE);  
			// 执行生成文档
			Docs.buildHtmlDocs(config); 
		}
}

编码规范

JApiDocs是通过解析Java源码来实现的,要使得JApiDocs正确工作,需要你在项目中的Controller书写遵循一定的编码规范,需要在注释里面添加@param 否则生成的文档会乱码。

可以参考我的例子

/**
	 * xml查询 通过id查询用户信息
	 * @param id
	 * @return
	 * @author ygc
	 */
	@RequestMapping("/queryUserById")
	@Transactional(propagation=Propagation.SUPPORTS)
	public List<UserInfo>  queryUserById(Integer id) {	
		List<UserInfo> temp=userService.queryUserById(id);
		if(temp!=null){
			return temp;
		}
		return null;
	}

四、生成文档

SpringBoot集成JApiDocs实现自动生成接口文档_springboot

选择文件夹下的index.html并打开

SpringBoot集成JApiDocs实现自动生成接口文档_java自动生成接口文档_02

五、生成结果

SpringBoot集成JApiDocs实现自动生成接口文档_自动生成接口文档_03

 

 

 

标签:Java,SpringBoot,生成,文档,config,DocsConfig,JApiDocs
From: https://blog.51cto.com/kero99/6674346

相关文章

  • SpringBoot+Mybatis搭建之采坑记录(持续更新...)
    Stoppingservice[Tomcat] 1.缺少Serivce注解无法启动tomcat 2.包名错误3.写了注解没写参数使用Eclipse调试Springboot项目时总是直接进入SilentExitExceptionHandler解决方案:Window-->Preference-->java-->debug-->Suspendexecutiononuncaughtexceptions选项前面的勾......
  • Eclipse搭建springBoot进阶篇-SpringBoot+Mybatis
    Eclipse搭建springBoot入门篇 在入门篇了搭建了一个简单的SpringBoot的Demo,在进阶篇将真正引入实战,也就是能支撑基本的企业中小型项目开发。本次通过springBoot+Mybatis+maven等搭建一个适用于开发中小型项目的简单架构pom文件需要更新maven的jar,对java包进行下载。<?xmlversi......
  • Eclipse搭建springBoot入门篇
    一、SpringBoot介绍SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapidapplicati......
  • 新版Springboot3.0打造能落地的高并发仿12306售票系统
    第1章课程介绍与学习指南3节|22分钟本章主要对课程做整体介绍,其中包括:课程要解决的问题、课程特色和亮点、课程内容安排、学完大家的收获,以及在学习方法上提出的建议与指导。 第2章12306这个系统架构到底有多牛?8节|71分钟本章主要对课程为什么选择12306课程作为实战......
  • QNX-9—QNX官网文档翻译—Resource Managers—Examples
    注:本文翻译自QNXSoftwareDevelopmentPlatform-->Programming-->GettingStartedwithQNXNeutrino-->ResourceManagershttp://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_examples.html我现在将向您展示一些......
  • QNX-9—QNX官网文档翻译—Resource Managers—Handler routines
    注:本文翻译自QNXSoftwareDevelopmentPlatform-->Programming-->GettingStartedwithQNXNeutrino-->ResourceManagershttp://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_routines.html并非所有outcalls都......
  • Mac中使用命令行来加密压缩zip文档
    背景最近需要对一些文件加密,但是Mac上没有找到相应的加密工具,macOS中创建密码保护的压缩zip文件很容易并且不需要任何额外附加物或下载。使用命令行的方式处理即可。对压缩包加密之后便意味着有人想要解压缩zip文件时,必须输入正确的密码才能取出归档文件。命令压缩文件时带入......
  • QNX-9—QNX官网文档翻译—Resource Managers—开篇
    注:本文翻译自:http://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr.html 一、本章前言在本章中,我们将了解编写资源管理器需要了解的内容。 资源管理器是QNXNeutrino的另一个显着功能,它允许您通过标准POSIX调用访问......
  • QNX-9—QNX官网文档翻译—Resource Managers—What is a resource manager?
    注:本文翻译自QNXSoftwareDevelopmentPlatform-->Programming-->GettingStartedwithQNXNeutrino-->ResourceManagershttp://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_What_is.html1.概述资源管理器只......
  • QNX-9—QNX官网文档翻译—Resource Managers—The resource manager library
    注:本文翻译自QNXSoftwareDevelopmentPlatform-->Programming-->GettingStartedwithQNXNeutrino-->ResourceManagershttp://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_the_resource_manager_librar......