Spring Boot 集成 Knife4j 接口文档生成工具
maven引用
- 在项目的pom.xml文件中引入knife4j的依赖,如下:
<dependencies> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <!--在引用时请在maven中央仓库搜索最新版本号--> <version>2.0.2</version> </dependency> </dependencies>
创建Swagger配置文件
-
新建Swagger的配置文件SwaggerConfiguration.java文件,创建springfox提供的Docket分组对象,代码如下:
@Configuration @EnableSwagger2 @EnableKnife4j @Import(BeanValidatorPluginsConfiguration.class) public class SwaggerConfiguration { @Bean(value = "defaultApi2") public Docket defaultApi2() { Docket docket=new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //分组名称 .groupName("2.X版本") .select() //这里指定Controller扫描包路径 .apis(RequestHandlerSelectors.basePackage("org.mur")) .paths(PathSelectors.any()) .build(); return docket; } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("swagger-bootstrap-ui RESTful APIs") .description("swagger-bootstrap-ui") .termsOfServiceUrl("http://localhost:8080/") // .contact("developer@mail.com") .version("1.0") .build(); } }
-
以上有两个注解需要特别说明,如下表:
注解 说明 @EnableSwagger2 该注解是Springfox-swagger框架提供的使用Swagger注解,该注解必须加 @EnableKnife4j 该注解是Springfox-swagger框架提供的使用Swagger注解,该注解必须加
接口文档访问
- 在浏览器输入地址:http://host:port/doc.html
附件
- 完整 DemoController
@Api(tags = "Demo") @RestController @RequestMapping("/demo") public class DemoController { @ApiOperation(value = "demo-one") @GetMapping("/one") public String demoOne(){ return "Hello World!"; } @ApiOperation(value = "demo-two") @PostMapping("/two") public DemoDO demoTwo(DemoDO demo){ return demo; } }
- 响应demo
@ApiModel("Demo响应") @Data @AllArgsConstructor public class DemoDO { @ApiModelProperty("str字符串") private String str; }
- Demo接口文档
- 官方使用引导: https://doc.xiaominfo.com/knife4j/knife4j/springboot.html