Swagger2+knife4j
导入Swagger的所要用的jar包
<!-- Swagger2 核心依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<!-- Swagger2 ui页面 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<!--配合Swagger2 形成一个knife4j页面 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
创建一个Swagger2的配置类
package com.liu.testing.testing.util;
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration//托管spring
@EnableSwagger2//开启swagger功能
public class Swagger {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.liu.testing.testing.controller"))//包名
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("破破烂烂的项目")
.description("这里些什么~~")//简介
.termsOfServiceUrl("com.liu.testing.testing")
.contact("程序猿")//作者
.version("version 1.0")//版本
.build();
}
}
然后生成一个页面就是这样子的:
这些都不重要。。。
重要是要怎么把写api展示出来
接下来去启动类里面添加,来告诉项目运用上了这个插件
@EnableSwagger2
先展示一个实体类![在这里插入图片描述](https://img-blog.csdnimg.cn/20201111142111660.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L05PX1RPUA==,size_16,color_FFFFFF,t_70#pic_center)
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(“用户表”)
public class Users implements Serializable {
.
private static final long serialVersionUID = 1L;
.
@ApiModelProperty(value = “用户id”)
private int id;
.
@ApiModelProperty(value = “用户”)
private String user;
.
@ApiModelProperty(value = “密码”)
private String pwd;
.
@ApiModelProperty(value = “技能表id”)
private Integer occupationId;}
ok 实体类完成了 其实@ApiModelProperty这个注解有好多参数 我这么写是够用了
@ApiModelProperty(value = “用户id”,name=“id”,dataType=true,example=“列子”)
接下来展示控制层
可以请求过去查看数据库里的的数据
@RestController
@RequestMapping("/users")
@Api(tags="用户模块")//页面上的左侧导航
public class UsersController {
@Autowired
private IUsersService iUsersService;
@ApiOperation(value="用户模糊查询",notes="根据姓名或手机号查询用户")
@ApiImplicitParams({
@ApiImplicitParam(name="name",value="姓名",required = false,dataType ="String",paramType = "path"),
@ApiImplicitParam(name="phone",value="手机号",required = false,dataType ="String",paramType = "query")
})
@GetMapping("selectUser")
public Users selectUser(){
return iUsersService.selectUser();
}
}
ok 这就完事了
@ApiImplicitParam(
name = “参数名字”,
value = “参数的描述”,
required = true,//调用的时候是不是必须的
paramType = “path”,//参数类型 body
dataType = “int”//参数类型 int
)
这么写基本没甚么问题就可以启动项目 查看项目了~~~
原来的Swagger2ui页面http://localhost:8080/swagger-ui.html
现在的http://localhost:8080/doc.html
当然这2个地址都是可以访问的