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