原 spring boot集成SwaggerBootstrapUI
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1226
一:引入swagger相关pom依赖。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>1.9.5</version>
</dependency>
二:Swagger2Config配置文件。
package com.mszl.config;
import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
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.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* swagger2配置类
*/
@Configuration
@EnableSwagger2 // 开启Swagger2
@EnableSwaggerBootstrapUI // 开启SwaggerBootstrapUI
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("cn.gaialab.gaiamind.microservice.brp")) // 声明主包
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("xx接口文档") // 文档名称
.description("xx接口文档")
.termsOfServiceUrl("http://www.91mszl.com") // 团队访问网址
.contact(new Contact("91mszl.com","","91mszl.com")) // 账号信息
.version("1.0") // 版本
.build();
}
}
三:使用
3.1 在控制层使用@Api
@Api(tags="预测分析")
@RestController
public class PredictionAnalyzeController {}
3.2 在方法上使用@ApiOperation
@ApiOperation(value="新增客户信息")
@PostMapping("/insertUserInfo")
public BaseResult insertUserInfo(@RequestBody UserInfoVO uo) {}
3.3 在方法中的单个参数使用@ApiImplicitParam
@ApiOperation(value="查询客户信息")
@ApiImplicitParam(name = "organizationId", value = "组织id", required = true, paramType = "query", dataType = "String")
@GetMapping("/selectUserInfo")
public BaseResult<List<UserInfo>> selectUserInfo(String organizationId) {}
3.4 在方法中的多个参数使用@ApiImplicitParams
@ApiOperation(value="明细列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "configId", value = "配置id", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "organizeId", value = "组织机构id", required = true, paramType = "query", dataType = "String")
})
@GetMapping("/selectAnalyze")
public BaseResult<List<ProgramInfoVo>> selectAnalyze(AnalyzeVO ao) {}
3.5 在实体类使用@ApiModel
@ApiModel(description = "方案详情")
public class AlgorithmProgramInfo {}
3.6 在实体类的属性(字段)上使用@ApiModelProperty
@ApiModelProperty(value = "销售类型", required = true)
private String salesType;
四:访问地址。
http://ip:port/doc.html
效果图:
五:如果你的接口返回的参数没有对应的swagger注释。如下图所示。
我们期望返回的结果也是带上注释的,我们出了在对应的vo或实体类里面加上注释外还需要在控制层返回的方法上加上泛型并指定对应返回的vo即可。如下
public BaseResult<List<userInfoVo>> selectPredictionAnalyze(AnalyzeVO ao) {}
效果图:
2020-05-20 18:23:33 阅读(811)
名师出品,必属精品 https://www.91mszl.com
博主信息