今天ImportNew公众号推送的“告别swagger-ui,我选择了这款神器”,介绍了下knife4j,之前对swagger管理的api不能排序让我头疼了不已,UI吧还能用,之前没觉着UI很差劲,用上了knife4j,豁然觉着ui真的差劲。废话不多说,链接地址送上:knife介绍
效果图送上:
快速开始
第一步:在maven项目的pom.xml中引入Knife4j的依赖包,代码如下:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.9</version>
</dependency>
第二步:创建Swagger配置依赖,代码如下:
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
@Bean(value = "defaultApi2")
public Docket defaultApi2() {
Docket docket=new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
//.title("swagger-bootstrap-ui-demo RESTful APIs")
.description("# swagger-bootstrap-ui-demo RESTful APIs")
.termsOfServiceUrl("http://www.xx.com/")
.contact("xx@qq.com")
.version("1.0")
.build())
//分组名称
.groupName("2.X版本")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
第三步:Controller注解接口说明,跟swagger差不多,有扩展
IndexController.java包含一个简单的RESTful接口,代码示例如下:
@Api(tags = "首页模块")
@RestController
public class IndexController {
@ApiImplicitParam(name = "name",value = "姓名",required = true)
@ApiOperation(value = "向客人问好")
@GetMapping("/sayHi")
public ResponseEntity<String> sayHi(@RequestParam(value = "name")String name){
return ResponseEntity.ok("Hi:"+name);
}
}
启动Spring Boot工程,在浏览器中访问:http://localhost/doc.html
上述步骤是官方文档快速开始说明,因为我环境之前集成过swagger,所以就做了引入第一步引入pom.xml,接口api管理页面doc.html瞬间逼格上升了一个档次。