【SpringBoot】knife4j接口文档UI搭建

注意:Knife4j 与 Swagger2 冲突

<!-- swagger2 依赖配置-->
<!--        <dependency>-->
<!--            <groupId>io.springfox</groupId>-->
<!--            <artifactId>springfox-swagger2</artifactId>-->
<!--            <version>2.8.0</version>-->
<!--        </dependency>-->
<!--        <dependency>-->
<!--            <groupId>io.springfox</groupId>-->
<!--            <artifactId>springfox-swagger-ui</artifactId>-->
<!--            <version>2.8.0</version>-->
<!--        </dependency>-->
        <!-- Knife4j 依赖配置-->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.7</version>
        </dependency>

1.在maven项目的pom.xml中引入Knife4j的依赖包

<!-- Knife4j 依赖配置-->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.7</version>
</dependency>

2.创建Swagger配置依赖

按需求填写相关信息

  1. 2.0.6及以上版本,使用@EnableSwagger2WebMvc注解开启,而2.0.6之前版本是使用@EnableSwagger2注解,和swagger-bootstrap-ui是一样的;

如果不想编写配置类也可以,将@EnableSwagger2WebMvc标注在启动类上即可,就完成入门级别的整合

//这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
这里要填写自己的 工程路径

/**
 * @author Gong XiuYi
 * @date 2022/2/23 9:56
 **/
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {
    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title("swagger-bootstrap-ui-demo RESTful APIs")
                        .description("# swagger-bootstrap-ui-demo RESTful APIs")
                        .termsOfServiceUrl("http://www.xx.com/")
                        .contact("xx@qq.com")
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("2.X版本")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

3.在 RESTful 基础上添加 以下两个注释

@Api(tags = {"用户接口"})  

@ApiOperation(value="查询", notes="根据User对象创建用户")

/**
 * @author Gong XiuYi
 * @date 2022/2/23 8:42
 **/
@Api(tags = {"用户接口"})
@RestController
@RequestMapping("/RESTful")
public class RestfulController {

    @Resource
    private BookRepository bookRepository;

    @ApiOperation(value="查询", notes="根据User对象创建用户")
    @GetMapping("/book/get/{userId}")
    public JsonResult getBook(@PathVariable String userId){
        Book book = new Book();
        book.setPrice(200F);
        book.setId(10L);
        book.setName(userId);
        bookRepository.save(book);
        return JsonResult.ok(bookRepository.findAll());
    }

此时,启动Spring Boot工程,在浏览器中访问:http://localhost:端口/doc.html

报错

报错: Failed to start bean ‘documentationPluginsBootstrapper‘ 问题处理

2.6.0开始使用基于PathPatternParser的路径匹配,而Springfox版本一直没有更新还是使用的AntPathMatcher导致了这个问题,要处理问题也很简单,修改yaml文件,将SpringBoot路匹配模式修改为AntPathMatcher就可以了,

配置如下:spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER 

mvc:
  pathmatch:
    matching-strategy: ANT_PATH_MATCHER

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值