springboot整合knife4j(绝对可⽤)1.9.6版~2.0.8版
1.情景展⽰
开发接⼝供别⼈调⽤或者前后端分离后,前端调后端请求需要提供什么参数,会返回什么样的结果。如果⼀对⼀沟通的话,费时费⼒,写接⼝⽂档的话也⽐较⿇烦。
2.效果展⽰
现在使⽤knife4j就可以实现以下效果:
点击调试按钮,就可以直接配置请求参数,发送请求啦
3 1.9.6版本配置
1.引⼊jar包
只需要引⼊这⼀个jar包就可以了,⽆需其它jar包。
2.创建⼀个配置类,⽐如:Knife4jConfig
3.导包
4.添加注解
以上是三个注解,⼀个都不能少,在这⾥需要注意的⼀点就是:
启⽤knif4j使⽤的注解是:@EnableSwaggerBootstrapUi,⽽不是@EnableKnife4j
5.创建Docket对象,并注⼊到spring容器当中
6.设置主页⽂档内容
在配置⽂件类Knife4jConfig中添加以上两个⽅法即可。
springmvc常用标签4 2.0.4版本配置
1.导包
<!--配置knife4j项⽬接⼝⽂档-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
说明:2.0.2版本的,只需要把上⾯jar包的版本号改成2.0.2即可,下⾯的配置⼀模⼀样。
只需要引⼊这⼀个jar包就可以了,⽆需其它jar包。
2.创建⼀个配置类,⽐如:Knife4jConfig(配置⽂件类最好创建⼀个config/conf包,⽅便统⼀管理)
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
import io.swagger.annotations.ApiOperation;
import t.annotation.Bean;
import t.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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* 项⽬接⼝⽂档配置(swagger)
* @description: 使⽤knife4j需要⼀个swagger的配置类
* @author: Marydon
* @date: 2020年08⽉11⽇ 0011 9:22
*/
@Configuration
// 必须启⽤swagger
@EnableSwagger2
@EnableKnife4j
/
/ swagger⽂档配置只在指定环境可访问(该注解的值对应的是l⽂件中的spring.profiles.active的值) // ⽀持使⽤!,⽐如:!prod表⽰⾮⽣产环境
// @Profile({"dev","test","jc"})
public class Knife4jConfig {
/*
* 创建连接的包信息
* @param: ⽅法名称随便起,虽然它的名字会被作为Bean对象的名字注⼊spring容器
* @date: 2020年08⽉11⽇ 0011 9:51
* @param:
* @return: springfox.documentation.spring.web.plugins.Docket 返回创建状况
*/
@Bean
public Docket defaultApi2() {
return new Docket(DocumentationType.SWAGGER_2) // 选择swagger2版本
.useDefaultResponseMessages(false)
// 接⼝⽂档的基本信息
.apiInfo(apiInfo())
.select()
// 这⾥指定Controller扫描包路径(项⽬路径也⾏)
// ⽅式⼀:配置扫描:所有想要在swagger界⾯统⼀管理的接⼝,都必须在此包下
// .apis(RequestHandlerSelectors.basePackage("company.ance"))
// ⽅式⼆:只有当⽅法上有@ApiOperation注解时,才能⽣成对应的接⼝⽂档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
/
/ 路径使⽤any风格(指定所有路径)
.paths(PathSelectors.any())
.build();
}
/*
* 设置⽂档信息主页的内容说明
* @date: 2020年08⽉11⽇ 0011 9:52
* @param:
* @return: springfox.documentation.service.ApiInfo ⽂档信息
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("接⼝项⽬后台服务API接⼝⽂档")
.description("服务相关接⼝(knife4j)")
// 服务Url(⽹站地址)
.termsOfServiceUrl("localhost:8080/")
.contact(new Contact("Marydon",null,"marydon20170307@163"))
.version("1.0")
.build();
}
}
5.注解基本⽤法
@Api():⽤于类的说明,准确的来说⽤于controller,表⽰这个类是⼀个swagger资源
对应的是:⼀个Controller
注意:tags属性必须显式声明,否者⽆法修改⼩组的显⽰名称
举例:
实际效果:
未⽣效(因为没有声明:tags=)
@ApiOperation():⽤于⽅法的说明,表⽰这是⼀个HTTP请求
对应的是controller⾥的⽅法
2020-12-16
这⾥需要注意的是:
@PostMapping对应的post请求,反映到API上就是post请求;
@GetMapping对应的get请求,反映到API上就是get请求;
@RequestMapping如果没有指定具体请求⽅式
API⽂档如下:
它会给你⽣出7种不同的请求⽅式,API本⾝没错
实际上,我们使⽤@RequestMapping的真实⽬的,也许是:想让该接⼝既⽀持get请求,也⽀持post请求,那我们可以做出限定。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论