概述
SpringBoot整合Springfox-Swagger2
用于前后端接口联调,前端可以看到接口的详细信息,示例如下:
配置代码如下:
application.yml文件配置
#enable swagger
swagger:
enable: true
package com.ifly.jkoala.config;
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import com.ifly.jkoala.common.constant.CommonConstant;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.ApiKey;
import springfox.documentation.service.Parameter;
import springfox.documentation.service.SecurityScheme;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
-
@Author scott
*/
@Slf4j
@Configuration
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
@EnableSwagger2WebMvc
@ConditionalOnProperty(name = “swagger.enable”, havingValue = “true”)
public class Swagger2Config implements WebMvcConfigurer {/**
- 显示swagger-ui.html文档展示页,还必须注入swagger资源:
- @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(“swagger-ui.html”).addResourceLocations(“classpath:/META-INF/resources/”);
registry.addResourceHandler(“doc.html”).addResourceLocations(“classpath:/META-INF/resources/”);
registry.addResourceHandler("/webjars/**").addResourceLocations(“classpath:/META-INF/resources/webjars/”);
}
/**
- swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
- @return Docket
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//此包路径下的类,才生成接口文档
.apis(RequestHandlerSelectors.basePackage(“com.ifly.jkoala.modules”))
//加了ApiOperation注解的类,才生成接口文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build()
.securitySchemes(Collections.singletonList(securityScheme()));
//.globalOperationParameters(setHeaderToken());
}
/***
- oauth2配置
- 需要增加swagger授权回调地址
- http://localhost:8888/webjars/springfox-swagger-ui/o2c.html
- @return
/
@Bean
SecurityScheme securityScheme() {
return new ApiKey(CommonConstant.X_ACCESS_TOKEN, CommonConstant.X_ACCESS_TOKEN, “header”);
}
/* - JWT token
- @return
*/
private List setHeaderToken() {
ParameterBuilder tokenPar = new ParameterBuilder();
List pars = new ArrayList<>();
tokenPar.name(CommonConstant.X_ACCESS_TOKEN).description(“token”).modelRef(new ModelRef(“string”)).parameterType(“header”).required(false).build();
pars.add(tokenPar.build());
return pars;
}
/**
- api文档的详细信息函数,注意这里的注解引用的是哪个
- @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// //大标题
.title(“JKoalaFly 后台服务API接口文档”)
// 版本号
.version(“1.0”)
// .termsOfServiceUrl(“NO terms of service”)
// 描述
.description(“后台API接口”)
.license(“The Apache License, Version 2.0”)
.licenseUrl(“http://www.apache.org/licenses/LICENSE-2.0.html”)
.build();
}
}
最后
以上就是成就耳机为你收集整理的SpringBoot整合Springfox-Swagger2的全部内容,希望文章能够帮你解决SpringBoot整合Springfox-Swagger2所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复