当前位置: 首页 > 后端技术 > Node.js

SpringCloud微服务实践——搭建企业级开发框架(六):使用knife4j集成Swagger2接口文档

时间:2023-04-03 23:17:26 Node.js

knife4j是一款集成Swagger的api文档生成增强方案。前后端Java代码与前端Ui模块分离。在服务架构下使用更加灵活,提供了专注于Swagger的增强方案。不同于仅仅改进和增强前端Ui部分,我们这里使用knife4j作为文档管理工具来替代swagger-ui。1.在GitEgg-Platform项目下新建一个gitegg-platform-swagger子项目。在GigEgg-Platform的子项目gitegg-platform-b??om中,修改pom.xml,以mavenbom的形式使用knife4j:com.github.xiaoyminknife4j-dependencies${knife4j.version}pomimport2.添加knife4j对gitegg-platform-swagger子项目中pom.xml的引用:GitEgg-Platformcom.gitegg.platform1.0-SNAPSHOT4.0.0gitegg-platform-swagger${project.artifactId}<版本>${project.parent.version}jarcom.github.xiaoyminknife4j-spring-boot-starter3、在gitegg-platform-swagger子工程中新建SwaggerConfig.java文件:packagecom.gitegg.platform.swagger.config;导入com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;导入org.springframework.context.annotation.Bean;导入org.springframework.context.annotation.Configuration;导入org.springframework.context.annotation.Import;导入springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;导入springfox.documentation.builders.ApiInfoBuilder;导入springfox.documentation.builders.PathSelectors;导入springfox.documentation.builders.RequestHandlerSelectors;导入springfox.documentation.service.ApiInfo;导入springfox.documentation.spi.DocumentationType;导入springfox.documentation.spring.web.plugins.Docket;导入springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2@EnableKnife4j@Import(BeanValidatorPluginsConfiguration.class)公共类SwaggerConfig{@Bean(值="GitEggApi")publicDocketGitEggApi(){Docketdocket=newDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())//分组名称.groupName("2.X版本").select()//这里指定Controller扫描包路径.apis(RequestHandlerSelectors.basePackage("com.gitegg.*.*.controller")).paths(PathSelectors.any()).build();返回摘要;}privateApiInfoapiInfo(){returnnewApiInfoBuilder().version("1.0.0").title("SpringCloudSwagger2文档").description("SpringCloudSwagger2文档").termsOfServiceUrl("www.gitegg.com“)。建造();}}4、在gitegg-service工程中引入gitegg-platform-swaggerGitEgg-Cloudcom.gitegg.cloud1.0-SNAPSHOT4.0.0gitegg-service</artifactId>pomgitegg-service-basegitegg-service-bigdatagitegg-service-systemcom.gitegg.platformgitegg-platform-dbcom.gitegg.platformgitegg-platform-mybatiscom.gitegg.platformgitegg-platform-swagger</dependency>org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-actuator/project>5、在gitegg-service-system工程下的SystemController.java类里面添加Swagger2相关注意packagecom.gitegg.service.system.controller;importcom.gitegg.service.system.service.ISystemService;importio.swagger.annotations.Api;导入io.swagger.annotations.ApiOperation;导入lombok.AllArgsConstructor;导入org.springframework.web.bind.annotation.GetMapping;导入org.springframework.web.bind.annotation.RequestMapping;导入org.springframework。网页绑定。annotation.RestController;@RestController@RequestMapping(value="system")@AllArgsConstructor@Api(tags="gitegg-system")publicclassSystemController{privatefinalISystemServicesystemService;@GetMapping(value="list")@ApiOperation(value="系统列表接口")publicObjectlist(){returnsystemService.list();}@GetMapping(value="page")@ApiOperation(value="系统页面接口")publicObjectpage(){returnsystemService.页();}}6、GitEggSystemApplication.java增加组件扫描注解,让Spring在启动时加载swagger2配置:importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.context.annotation.ComponentScan;/***gitegg-系统启动类*/@ComponentScan(basePackages="com.gitegg")@MapperScan("com.gitegg.*.*.mapper")@SpringBootApplication公共类GitEggSystemApplication{publicstaticvoidmain(String[]args){SpringApplication.run(GitEggSystemApplication.class,args);}}7.运行gitegg-service-system,打开浏览器访问:http://127.0.0.1:8001/doc.html,在https://的chapter-06分支可以看到swagger2文档界面源码/gitee.com/wmz1930/GitEgg