本文共 3146 字,大约阅读时间需要 10 分钟。
在项目中集成Swagger2 tool 对 api 文档进行定义 和 电子文档 生成,是一个非常实用的方法。以下 将 分步骤解释 如何 配置 Swagger2 在 Spring Boot 项目 中。
第一步:添加 Swagger 依赖项
确保 项目 中添加了 必要的 Swagger2 依赖。以下 是具体的 dependency 配置:
io.springfox springfox-swagger2 2.8.0 io.springfox springfox-swagger-ui 2.8.0
第二步:配置 Swagger2
创建一个配置类,使用 Spring Boot 的 @Configuration
注注和 @EnableSwagger2
实现 Swagger2 的支持。以下 是配置类的代码:
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Profile;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.*;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spi.service.contexts.SecurityContext;import springfox.documentation.spring.web.plugins.Docket;import io.swagger.annotations.EnableSwagger;@Configuration@EnableSwagger@Profile({"dev", "test"})public class SwaggerConfig { @Bean public Docket restApiDocumentation() { return new Docket(DocumentationType.SWAGGER_2) .enable(true) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.xzh.controller")) .paths(PathSelectors.any()) .build() .securitySchemes(securitySchemes()) .securityContexts(securityContexts()); } private ListsecuritySchemes() { List apiKeyList = new ArrayList<>(); apiKeyList.add(new ApiKey("token", "token", "header")); return apiKeyList; } private List securityContexts() { List securityContexts = new ArrayList<>(); SecurityContext securityContext = SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex("^(?!auth).*$")) .build(); securityContexts.add(securityContext); return securityContexts; } private List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); List authorizationScopes = Arrays.asList(authorizationScope); List securityReferences = new ArrayList<>(); securityReferences.add(new SecurityReference("token", authorizationScopes)); return securityReferences; } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("My API") .contact(new Contact("张三", "", "zhangsan@example.com")) .version("1.0.0") .build(); }}
注意事项:
依赖项版本: 确认 Swagger2 及其相关组件的版本与项目兼容。
Profile 配置: 在 @Profile
中指定适用的环境,如开发环境和测试环境。
Base Package 配置: 在 RequestHandlerSelectors.basePackage("com.xzh.controller")
中,将 Swagger2 扩展应用到指定的包路径。
使用后的效果:
当 应用在 enable 后,默认会生成一个漂亮的 API 文档,部署在 /swagger
路径,内容 包括所有在指定包路径下被识别的控制器类和其相关的端点。
完成以上步骤后,您的项目就可以playfully 测试和发文档了。
转载地址:http://yaxiz.baihongyu.com/