feat: 新增swagger的config配置
This commit is contained in:
parent
891cc99c54
commit
22c90cf6bc
85
ym-gateway/src/main/java/com/cnbm/config/SwaggerConfig.java
Normal file
85
ym-gateway/src/main/java/com/cnbm/config/SwaggerConfig.java
Normal file
@ -0,0 +1,85 @@
|
||||
package com.cnbm.config;
|
||||
|
||||
import com.cnbm.common.constant.Constant;
|
||||
import com.google.common.collect.Lists;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import springfox.documentation.builders.ApiInfoBuilder;
|
||||
import springfox.documentation.builders.PathSelectors;
|
||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||
import springfox.documentation.oas.annotations.EnableOpenApi;
|
||||
import springfox.documentation.service.*;
|
||||
import springfox.documentation.spi.DocumentationType;
|
||||
import springfox.documentation.spi.service.contexts.SecurityContext;
|
||||
import springfox.documentation.spring.web.plugins.Docket;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static com.google.common.collect.Lists.newArrayList;
|
||||
|
||||
/**
|
||||
* @Author weihongyang
|
||||
* @Date 2022/6/21 10:56 AM
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Configuration
|
||||
@EnableOpenApi
|
||||
public class SwaggerConfig {
|
||||
|
||||
/**
|
||||
* 创建API应用
|
||||
* apiInfo() 增加API相关信息
|
||||
* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
|
||||
* 本例采用指定扫描的包路径来定义指定要建立API的目录。
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public Docket restApi() {
|
||||
return new Docket(DocumentationType.SWAGGER_2)
|
||||
.groupName("标准接口")
|
||||
.apiInfo(apiInfo("Spring Boot中使用Swagger2构建RESTful APIs", "1.0"))
|
||||
.useDefaultResponseMessages(true)
|
||||
.forCodeGeneration(false)
|
||||
.select()
|
||||
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
||||
.paths(PathSelectors.any())
|
||||
.build()
|
||||
.securityContexts(Arrays.asList(securityContext()))
|
||||
// ApiKey的name需与SecurityReference的reference保持一致
|
||||
.securitySchemes(Arrays.asList(new ApiKey("token", "token", "header")));
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建该API的基本信息(这些基本信息会展现在文档页面中)
|
||||
* 访问地址:http://ip:port/swagger-ui.html
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private ApiInfo apiInfo(String title, String version) {
|
||||
return new ApiInfoBuilder()
|
||||
.title(title)
|
||||
.description("ym-pass文档")
|
||||
.termsOfServiceUrl("https://www.baidu.com/")
|
||||
.version(version)
|
||||
.build();
|
||||
}
|
||||
|
||||
private SecurityContext securityContext() {
|
||||
return SecurityContext.builder()
|
||||
.securityReferences(defaultAuth())
|
||||
.build();
|
||||
}
|
||||
|
||||
List<SecurityReference> defaultAuth() {
|
||||
AuthorizationScope authorizationScope
|
||||
= new AuthorizationScope("global", "accessEverything");
|
||||
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
|
||||
authorizationScopes[0] = authorizationScope;
|
||||
return Lists.newArrayList(
|
||||
new SecurityReference(Constant.TOKEN_HEADER, authorizationScopes));
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user