沈阳哪家公司做网站好,cctv军事报道,网站分享做描点链接,微信公众号与网站绑定swagger集成文档具有功能丰富、及时更新、整合简单#xff0c;内嵌于应用的特点。
由于后台管理和前台接口均需要接口文档#xff0c;所以在工具包构建BaseSwaggerConfig基类。 1.引入依赖 dependencygroupIdio.springfox/groupIdartifactId内嵌于应用的特点。
由于后台管理和前台接口均需要接口文档所以在工具包构建BaseSwaggerConfig基类。 1.引入依赖 dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version/dependency2.需要添加Swagger配置类。
/*** Swagger基础配置*/
public abstract class BaseSwaggerConfig {Beanpublic Docket createRestApi() {SwaggerProperties swaggerProperties swaggerProperties();Docket docket new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo(swaggerProperties)).select().apis(RequestHandlerSelectors.basePackage(swaggerProperties.getApiBasePackage())).paths(PathSelectors.any()).build();if (swaggerProperties.isEnableSecurity()) {docket.securitySchemes(securitySchemes()).securityContexts(securityContexts());}return docket;}private ApiInfo apiInfo(SwaggerProperties swaggerProperties) {return new ApiInfoBuilder().title(swaggerProperties.getTitle()).description(swaggerProperties.getDescription()).contact(new Contact(swaggerProperties.getContactName(), swaggerProperties.getContactUrl(), swaggerProperties.getContactEmail())).version(swaggerProperties.getVersion()).build();}private ListApiKey securitySchemes() {//设置请求头信息ListApiKey result new ArrayList();ApiKey apiKey new ApiKey(Authorization, Authorization, header);result.add(apiKey);return result;}private ListSecurityContext securityContexts() {//设置需要登录认证的路径ListSecurityContext result new ArrayList();result.add(getContextByPath(/*/.*));return result;}private SecurityContext getContextByPath(String pathRegex) {return SecurityContext.builder().securityReferences(defaultAuth()).forPaths(PathSelectors.regex(pathRegex)).build();}private ListSecurityReference defaultAuth() {ListSecurityReference result new ArrayList();AuthorizationScope authorizationScope new AuthorizationScope(global, accessEverything);AuthorizationScope[] authorizationScopes new AuthorizationScope[1];authorizationScopes[0] authorizationScope;result.add(new SecurityReference(Authorization, authorizationScopes));return result;}/*** 自定义Swagger配置*/public abstract SwaggerProperties swaggerProperties();
}将需要配置的字段提取出来单独作为一类
/*** Swagger自定义配置*/
Data
EqualsAndHashCode(callSuper false)
Builder
public class SwaggerProperties {/*** API文档生成基础路径*/private String apiBasePackage;/*** 是否要启用登录认证*/private boolean enableSecurity;/*** 文档标题*/private String title;/*** 文档描述*/private String description;/*** 文档版本*/private String version;/*** 文档联系人姓名*/private String contactName;/*** 文档联系人网址*/private String contactUrl;/*** 文档联系人邮箱*/private String contactEmail;
}前台接口和后台管理的包的配置只需要继承重写该类就行了
/*** Swagger API文档相关配置*/
Configuration
EnableSwagger2
public class SwaggerConfig extends BaseSwaggerConfig {Overridepublic SwaggerProperties swaggerProperties() {return SwaggerProperties.builder().apiBasePackage(com.example.admin).title(后台管理系统).description(后台相关接口文档).contactName(author).version(1.0).enableSecurity(true).build();}
}接着就可以访问http://localhost:8001/swagger-ui/index.html接口文档页面了后续可以通过swagger来测试接口。 详细配置参考https://swagger.io/