2024年1月Java项目开发指南17:自动接口文档配置

萌狼工作室 / 2024-09-22 / 原文

Knife4j 文档 :https://doc.xiaominfo.com/

有能力的建议自己去看文档配置,本文仅做参考,因为官方文档会更新,本文不会,以后说不定本文就过时了。

ok,我们继续。虽然本文是2024年1月Java项目开发指南17,但实际上与前面的并没有什么关联(不是基于之前的项目的),这一点需要你知道。

导入依赖:

		<dependency>
			<groupId>com.github.xiaoymin</groupId>
			<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
			<version>4.5.0</version>
		</dependency>

配置(properties):

# springdoc-openapi
springdoc.swagger-ui.path= /swagger-ui.html
springdoc.swagger-ui.tags-sorter= alpha
springdoc.swagger-ui.operations-sorter= alpha
springdoc.api-docs.path= /v3/api-docs
springdoc.group-configs[0].group= 'default'
springdoc.group-configs[0].paths-to-match= '/**'
springdoc.group-configs[0].packages-to-scan= 'com.guaiguailang.harmony.**'

注意:packages-to-scan 的值 要改成符合自己的项目,不要照抄

如果你配置文件不是这种格式,另外一种格式(yml)如下:

# springdoc-openapi项目配置
springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: 'default'
      paths-to-match: '/**'
      packages-to-scan: com.xiaominfo.knife4j.demo.web
# knife4j的增强配置,不需要增强可以不配
knife4j:
  enable: true
  setting:
    language: zh_cn

注意:packages-to-scan 的值 要改成符合自己的项目结构信息

就这样就可以了,还可以搞点有意思的,就是运行的时候输出文档地址,效果就像这样:

image

那么怎么做呢,首先配置文件要有:


# Server Info Setting
server.port=8080
server.servlet.context-path=/
server.servlet.session.timeout=3600

然后在启动文件里面写:

package com.guaiguailang.harmony;

import com.github.yitter.contract.IIdGenerator;
import com.github.yitter.contract.IdGeneratorOptions;
import com.github.yitter.idgen.YitIdHelper;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

@SpringBootApplication
public class HarmonyLifeServerApplication {

	public static void main(String[] args) {
//		SpringApplication.run(HarmonyLifeServerApplication.class, args);
		// 启动 Spring Boot 应用
		ConfigurableApplicationContext context = SpringApplication.run(HarmonyLifeServerApplication.class, args);

		// 获取服务器端口
		int port = context.getEnvironment().getProperty("server.port", Integer.class);
		// 获取服务器上下文路径,默认为"/"
		String contextPath = context.getEnvironment().getProperty("server.servlet.context-path", "/");
		if (contextPath.equals("/")) {
			contextPath = "";
		}
		System.out.println("^_^ 青山埋忠骨,烟巷葬伟杰        ORZ···");
		System.out.println("工    作    区  :"+work_space+" (请保证工作区全局唯一)");
		// 输出项目访问地址
		System.out.println("访   问  地  址 : http://localhost:" + port + contextPath);

		// 输出 Swagger 文档地址
		System.out.println("Swagger 文档地址: http://localhost:" + port + contextPath + "/swagger-ui.html");
		System.out.println("Knife4j 文档地址: http://localhost:" + port + contextPath + "/doc.html");
		System.out.println("^_^ 仙之巅 傲世间 先有萌狼后有天    ORZ···");
	}

}

完毕