提示:knife4j的使用方法和swagger几乎一模一样,没有什么学习成本,该文只适合普通spring boot ,不涉及网关啥的
1.pom
<!-- knife4j-spring-boot -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
2.yml 可要 可不要
knife4j:
#自定义文档
markdowns: classpath:markdown/*
#屏蔽文档
#production: true
#认证
#basic:
#enable: true
#username: station
#password: station
3.Configuration类 跟 swagger配置一样
@Configuration
@EnableSwagger2
@EnableKnife4j
@Import(BeanValidatorPluginsConfiguration.class)
public class Knife4jConfiguration {
/**
* 可指定多个Docket区分不同的分组
*
* @return
*/
@Bean
public Docket defaultApi() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
//分组名称
.groupName("1.0.0版本")
.select()
//这里指定Controller扫描包路径 ,不能用 * ,如果是com.gs.station,也会去自动匹配下级的 controller层
.apis(RequestHandlerSelectors.basePackage("com.gs.station.manage.modules"))
//添加Api注解才显示
// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
.paths(PathSelectors.any())
.build();
return docket;
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("14楼")
.description("# daping's RESTful APIs")
.termsOfServiceUrl("***")
.version("1.0.0")
.build();
}
}
4注解
//作者
@ApiOperationSupport(author = "tx")
//名称
@ApiOperation(value = "地图模块")
//参数
@ApiImplicitParams({
@ApiImplicitParam(name="time",value="yyyyMMddHHmmss",required=true,paramType="query"),
@ApiImplicitParam(name="type",value="SURF:自动站",required=true,paramType="query")})
//注意 最好不要用 RequestMapping (页面会出现多类型请求),或者你指定好 类型 get post 等
@GetMapping("SysTsite")
5.访问路径
项目路径+/doc.html