一、介绍
在前后端配合开发中,后端人员提供的接口文档对前后端的完美配合往往起到举足轻重的作用,一个漂亮美观且功能强大的接口文档更是可以轻易获得前端妹子的青睐。而传统的接口文档插件swagger在漂亮美观功能强大方面它却一边的都不沾。今天给大家介绍一款基于swagger并作出增强的接口文档插件:kniife4j,推荐它的理由是漂亮美观且功能强大,且集成过程简单。下面是它的示例图
下面我们开始将knife4j接口文档插件集成进springboot项目中。
二、第一步:添加pom依赖
<!-- 引入knife4j依赖 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
三、第二步:添加knife4j配置类
@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("学生服务")
.termsOfServiceUrl("http://www.xx.com/")
.contact("xx@qq.com")
.version("1.0")
.build())
//分组名称
.groupName("2.X版本")
.select()
//这里指定Controller扫描包路径
.apis(RequestHandlerSelectors.basePackage("com.idealhooray.student.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
}
四、第三步:业务接口
@Api(tags = "男学生")
@RestController
@RequestMapping("/boy")
public class BoyStudentController {
@ApiOperation("根据姓名获取男学生")
@ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "query")
@GetMapping("/byName")
public String getBoyStudentByName(@RequestParam("name") String name) {
return "男学生:" + name;
}
}
@Api(tags = "女学生")
@RestController
@RequestMapping("/girl")
public class GirlStudentController {
@ApiOperation("根据姓名获取女学生")
@ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "query")
@GetMapping("/byName")
public String getGirlStudentByName(@RequestParam("name") String name) {
return "女学生:" + name;
}
}
五、项目结构
src
│ ├─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─idealhooray
│ │ │ └─student
│ │ │ ├─config
│ │ │ └─Knife4jConfiguration.java
│ │ │ └─controller
│ │ │ └─BoyStudentController.java
│ │ │ └─GirlStudentController.java
│ │ │ └─StudentApplication.java
│ │ └─resources
│ │ └─application.yml
六、第四步:打开接口文档
启动项目后,打开接口文档http://ip:port/doc.html