系统是微服务,已经使用了knife4j对微服务的集成,但是有个比较蛋疼的就是,在开发的时候,不能只针对某个开发的微服务,进行接口的展示以及调试,这样会增加开发成本。所以就做了点骚操作,在单独的项目中使用swagger。
这里附上官网链接: https://doc.xiaominfo.com/
在maven中添加依赖:
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>com.drore.cloud</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.4</version> </dependency>增加配置类
@Configuration @EnableSwagger2 @EnableKnife4j @Import(BeanValidatorPluginsConfiguration.class) public class SwaggerConfiguration { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("org.springblade.mktcenter"))//扫描路径 .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("swagger-bootstrap-ui RESTful APIs") .description("swagger-bootstrap-ui") .termsOfServiceUrl("http://localhost:9103/") .contact("developer@mail.com") .version("1.0") .build(); } }但是在 Controller 中,对于 @Get 请求 会有如下错误 原因是 @Get 请求,这个会为空
找到 maven 仓库中的 jar 包文件进行编辑:
建议使用记事本进行编辑,博主使用了idea编辑不生效:
搜索 apiInfo.consumes 找到如下代码,在外面加上 if 判断就行 然后刷新页面,或者清空缓存刷新页面就成。