Knife4j介绍
Knife4j其实就是增强版本的swagger,过多的介绍我就不说了,一搜一大把,直接开始吧哈哈
SpringBoot 整合Knife4j
1.引入pom依赖
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.1</version>
</dependency>
需要其他版本的可以去https://mvnrepository.com/
自己选择。
2.配置类
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
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.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
@EnableKnife4j
@Configuration
@ConditionalOnProperty(prefix = "knife4j",name = "enable",havingValue = "true")
//在application.yml文件中配置 例如用户名密码
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.project.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("项目1.0")
.description("swagger-bootstrap-ui")
.version("1.0")
.build();
}
}
链式调用时api指定需要扫描的包,如果在配置加入@ConditionalOnProperty注解可以在yml文件配置用户名密码等等,如下
#端口设置
server:
port: 10086
servlet:
encoding:
charset: UTF-8
#swagger全局配置
knife4j:
enable: true #是否开启Swagger
basic:
enable: true #进入界面是否需要账号密码
username: admin
password: 123456
3.测试
配置完成后,接着写个接口测试即可.
实体类,@ApiModel说明当前类,@ApiModelProperty设置参数value说明,required是否必填,example示列值
@ApiModel("用户实体")
public class User {
@ApiModelProperty(value = "用户名",required = true,example = "张三")
private String username;
@ApiModelProperty(value = "密码",required = true,example = "999")
private String password;
//get set方法可lombok 我这边自动生成了
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
接口这边我就不连数据库写具体服务了
@RestController
@RequestMapping("/api")
@Api(tags = "小刀测试")
public class TestController {
@ApiOperation("接口测试")
@PostMapping(value = "/test1")
public String test1(@RequestBody User user){
return user.getUsername()+"你好啊";
}
}
完成直接启动项目:
访问http://localhost:10086/doc.html
输入用户名密码即可
进去测一下接口,红圈标注的就是咋在注解写的,方便前端对接,测试时参数自动补齐示列值
这边就配置完了。。。
如果说当后台有token验证,访问接口需要token,当token在请求头部时(jwt)也可以用,访问登录拿到token串
在页面选择文档管理--全局参数配置加上即可访问
文章来源:https://www.toymoban.com/news/detail-402009.html
文章来源地址https://www.toymoban.com/news/detail-402009.html
到了这里,关于springboot整合Knife4j--token头验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!