Springboot整合knife4j

本文介绍了如何在SpringBoot项目中通过knife4j库创建API文档,包括添加依赖、配置Docket以定制错误响应和API信息,以及编写和测试一个简单的Controller。参考了其他博主的解决方案来处理可能的问题。
摘要由CSDN通过智能技术生成
knife4j是一个代码调试平台,更postman差不多

一.导入依赖

 <groupId>com.github.xiaoymin</groupId>
      <artifactId>knife4j-spring-boot-starter</artifactId>
      <version>2.0.2</version>

二.写配置类

package com.conf;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMethod;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.builders.ResponseMessageBuilder;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.ResponseMessage;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
@Configuration
@EnableSwagger2
public class conf {
    @Bean
    Docket createRestApi() {
        ResponseMessage requestParameterError = new ResponseMessageBuilder().code(400).message("Request Parameter Error").build();
        ResponseMessage notFound = new ResponseMessageBuilder().code(404).message("Not Found").build();
        ResponseMessage internalServerError = new ResponseMessageBuilder().code(500).message("Internal Server Error").build();

        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.Collter"))
                .paths(PathSelectors.any())
                .build()

                // 以字符串代替日期格式显示
                .directModelSubstitute(LocalDate.class, String.class)
                .directModelSubstitute(LocalDateTime.class, String.class)


                // 页面显示信息
                .apiInfo(apiInfo())
                .enable(true)

                // 设置全局自定义异常消息返回
                .useDefaultResponseMessages(false)
                .globalResponseMessage(RequestMethod.GET, Arrays.asList(requestParameterError, notFound, internalServerError))
                .globalResponseMessage(RequestMethod.POST, Arrays.asList(requestParameterError, internalServerError))
                .globalResponseMessage(RequestMethod.PUT, Arrays.asList(requestParameterError, internalServerError))
                .globalResponseMessage(RequestMethod.OPTIONS, Arrays.asList(requestParameterError, internalServerError))
                .globalResponseMessage(RequestMethod.DELETE, Arrays.asList(requestParameterError, internalServerError));
    }


    private ApiInfo apiInfo() {
        return new ApiInfo("swagger2  API",
                "swagger2 API 文档",
                "1.0.0",
                "/",
                new Contact("swagger2 API文档", "/doc.html", ""),
                "",
                "",
                new ArrayList<>());
    }

}

三.测试

写出一个控制器

@RestController
@Api(tags = "测试kefile")
@ApiOperation(value = "swagger测试")
public class UserCoolter {
    @GetMapping("/r1")

    public String grt(){
        return "hello";
    }
}

测试页面

四。总结

参考了以下两位的文章

可能会有问题看看第一篇

解决 高版本SpringBoot整合Swagger 启动报错Failed to start bean ‘documentationPluginsBootstrapper‘ 问题_高版本springboot解决 documentationpluginsbootstrapper报错-CSDN博客

Springboot 整合 knife4j | Swagger文档最简单配置_knife4j-springdoc-ui-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值