一、使用 springfox生成接口UI 1、导入springfox-boot-starter依赖 dependency groupIdio.springfox/groupId artifactIdspringfox-boot-starter/artifactId version3.0.0/version/dependency 2、配置config @Configuration@EnableOpenApi@Slf
一、使用 springfox生成接口UI
1、导入springfox-boot-starter依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency>2、配置config
@Configuration @EnableOpenApi @Slf4j public class SwaggerConfig extends WebMvcConfigurationSupport { /** * 设置静态资源映射 */ @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("开始进行静态资源映射...."); registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/"); registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/"); registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/"); } @Bean public Docket docket() { return new Docket(DocumentationType.OAS_30) // 选择文档类型 OpenApi 3.0 .apiInfo(apiInfo()) //配置swagger信息 .enable(true) // 是否开启 默认开启; .groupName("reggie") // reggie .select() // 选择 .apis(RequestHandlerSelectors.basePackage("com.xy.reggie.controller")) // 扫描的包路径下的类 .build(); // 创建 } private ApiInfo apiInfo() { return new ApiInfo( "reggie 文档", "reggie 文档", "v1.0", "https://www.xxx.edu.cn/", new Contact("谢阳", "https://blog.51cto.com/learningfish", "xxxx@qq.com"), "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList() ); } }3、swagger的Api介绍
姓名 描述 @Api 将类标记为 Swagger 资源(一般用于描述Controller) @ApiImplicitParam 表示 API 操作中的单个参数 (一般用于描述具体方法参数) @ApiImplicitParams 允许多个 ApiImplicitParam 对象列表的包装器(一般用于包裹@ApiImplicitParam) @ApiModel 提供有关 Swagger 模型的其他信息 (一般用于描述Controller方法参数的pojo类) @ApiModelProperty 添加和操作模型属性的数据(一般用于描述pojo的属性) @ApiOperation 描述针对特定路径的操作或通常是 HTTP 方法。(一般用于描述Controller方法) @ApiParam 为操作参数添加额外的元数据。 @ApiResponse 描述操作的可能响应。 @ApiResponses 允许多个 ApiResponse 对象列表的包装器。 @Authorization 声明要在资源或操作上使用的授权方案。 @AuthorizationScope 描述 OAuth2 授权范围。- @Api用法如下:
- @ApiOperation用法如下:
- @ApiImplicitParams、@ApiImplicitParam用法如下:
- @ApiModel、@ApiModelProperty用法如下:
访问swagger-ui/index.html接口:
https://localhost:8080/swagger-ui/index.html http://localhost:8080/swagger-ui/index.html二、使用knife4j生成接口UI
1、导入knife4j-spring-boot-starter依赖
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>2、配置config
@Configuration @EnableOpenApi @Slf4j public class SwaggerConfig extends WebMvcConfigurationSupport { /** * 设置静态资源映射 */ @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("开始进行静态资源映射...."); registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/"); registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/"); registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } @Bean public Docket docket() { return new Docket(DocumentationType.OAS_30) // 选择文档类型 OpenApi 3.0 .apiInfo(apiInfo()) //配置swagger信息 .enable(true) // 是否开启 默认开启; .groupName("reggie") // reggie .select() // 选择 .apis(RequestHandlerSelectors.basePackage("com.xy.reggie.controller")) // 扫描的包路径下的类 .build(); // 创建 } private ApiInfo apiInfo() { return new ApiInfo( "reggie 文档", "reggie 文档", "v1.0", "https://www.xxx.edu.cn/", new Contact("谢阳", "https://blog.51cto.com/learningfish", "xxxx@qq.com"), "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList() ); } }访问doc.html页面:
https://localhost:8080/doc.html#/home http://localhost:8080/doc.html#/home