swagger2 配置访问路径_项目引入Swagger及使用姿势

时间:2025-03-20 19:24:50

1.导入pom依赖

springfox-swagger2

2.9.2

knife4j-spring-boot-starter

2.0.2

2.添加swagger配置类

package ;

import ;

import ;

import ;

import ;

import ;

import ;

import ;

import ;

import ;

import ;

import ..EnableSwagger2;

import ;

/**

*

* swagger页面展示的配置

*

*

* @author Toby

* @since 2020/5/13

*/

@Configuration

@EnableSwagger2

@EnableKnife4j

public class Swagger2Configuration {

@Bean

public Docket createRestApi() {

HashSet contentType = new HashSet<>(1);

("application/json");

return new Docket(DocumentationType.SWAGGER_2)

.apiInfo(apiInfo())

.consumes(contentType)

.produces(contentType)

.select()

// 扫描包路径

.apis((""))

.paths(())

.build();

}

private ApiInfo apiInfo() {

return new ApiInfoBuilder()

.title("xxx-api文档")

.description("xxx-xx模块api文档")

.version("1.0")

.contact(new Contact("xxx项目组","","[email protected]"))

.build();

}

}

注:basePackage要改为项目对应的controller目录路径,使用增强功能的话,需要在配置类上加@EnableKnife4j注解,并且在UI界面的个性化设置中开启增强功能。具体增强功能请移步至最后自行查看文档。

3.查看UI界面

启动项目后,在浏览器输入http://${host}??{port}/

4.项目中可能会用到的增强功能

自定义文档

在resource目录下新建markdown文件夹,在目录下新建.md结尾的file即可。在中加入以下配置

knife4j:

markdowns: classpath:markdown/*

注意:自定义文档说明必须以.md结尾的文件,其他格式文件会被忽略

访问权限控制-生产环境屏蔽Swagger所有资源接口

之前的项目如果想在正式环境配置中屏蔽Swagger资源的话,是取的运行环境作判断,现在只需要在正式的中加入以下配置即可。

knife4j:

production: true

访问页面加权控制

登录需要账号密码,提供简单的basic认证功能,在中加入以下配置即可。

knife4j:

## 开启Swagger的Basic认证功能,默认是false

basic:

enable: true

## Basic认证用户名

username: admin

## Basic认证密码

password: 123456

4.注意事项

依赖变更

ui前端界面显示的依赖更改,下的springfox-swagger-ui最终版本为1.9.6,之后版本包名更改为knife4j,不同框架集成方式的pom依赖自行查看原文文档。

api分组相关,Docket实例不能延迟加载(目前应该用不到,具体多少个算多也不清楚,知道即可。)

springfox默认会把所有api分成一组,这样访问时会在同一个页面里加载所有api列表。这样,如果系统稍大一点,api稍微多一点,页面就会出现假死的情况,所以很有必要对api进行分组。api分组,定义多个RestApi即可,通过groupName作区分。

5.文档地址

原文:/tobyhomels/p/