• SpringBoot整合knife4j3.0.3


    在Spring Boot项目中,我们可以通过引入Swagger依赖,然后在Controller中加入相应注解,即可生成API文档。Swagger提供了一个Web界面,在这个界面上可以查看所有API的信息,包括请求方法、参数、响应码等。Knife4j是Swagger-UI的增强版,它是在Swagger-UI的基础上进行了改进和优化,提供了更加完善的交互体验和更加美观的UI设计。同时,它也提供了更多的扩展功能,例如在线调试和多语言支持等。

    配置

    pom.xml:

     <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
                <version>3.0.3</version>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Swagger使用

    在Spring Boot项目中,Controller通常会有多个接口,我们可以通过在Controller类上添加@Api注解来为API接口添加描述信息,以及使用@ApiOperation注解来为单个接口添加描述信息。

    使用

    在Spring Boot项目中,我们可以通过Swagger注解@Api来定义接口分组。@Api注解指定了该Controller的标签为“用户管理”,这个标签将作为接口分组的名称::

    @RestController
    @RequestMapping("/users")
    @Api(tags = "用户管理")
    public class UserApi {
       
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    当一个Controller包含多个接口时,可以通过@ApiOperation注解指定每个接口的简介和说明。例如:

    @RestController
    @RequestMapping("/users")
    @Api(tags = "用户管理")
    public class UserApi {
    
        @GetMapping("/{id}")
        @ApiOperation(value = "获取用户信息", notes = "根据用户ID获取用户信息")
        public User getUserById(@PathVariable("id") Long id) {
           
        }
    
        @PostMapping
        @ApiOperation(value = "创建用户", notes = "创建新用户")
        public User createUser(@RequestBody User user) {
           
        }
    
        // ...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    此外,设置项目的基本信息也是有必要的。

    @EnableOpenApi
    @Configuration
    public class DocumentConfig {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.OAS_30)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.jp"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("管理平台API文档")
                    .description("管理系统")
                    .contact(new Contact("jp", "", ""))
                    .version("2.0.0")
                    .build();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    打开API文档地址
    在这里插入图片描述

    接口字段说明

    Swagger提供了@ApiImplicitParam注解。下面演示使用@ApiImplicitParam注解指定了每个参数的名称、类型和说明:

    @RestController
    @RequestMapping("/users")
    @Api(tags = "用户管理")
    public class UserApi {
    
        @GetMapping("/{id}")
        @ApiOperation(value = "获取用户信息", notes = "根据用户ID获取用户信息")
        @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long", paramType = "path")
        public User getUserById(@PathVariable("id") Long id) {
            // ...
        }
    
        @PostMapping
        @ApiOperation(value = "创建用户", notes = "创建新用户")
        @ApiImplicitParams({
                @ApiImplicitParam(name = "user", value = "用户实体", required = true, dataType = "User", paramType = "body")
        })
        public User createUser(@RequestBody User user) {
            // ...
        }
    
        // ...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这里插入图片描述

    Knife4j 增强功能

    • 离线文档导出: 用户可以直接在界面上导出 HTML、Markdown 或 Word 格式的离线文档,这对于没有网络环境下的开发、分享或者存档非常有用。
    • 接口排序与分组: Knife4j 支持对API接口进行自定义排序和分组,使得文档结构更加清晰有序,方便用户快速定位到所需接口。
    • 在线调试与数据模拟: 除了基本的接口调用测试外,Knife4j 还增强了在线调试功能,支持设置请求头、Cookie、Body等多种参数,以及保存历史请求、导入导出测试数据等,便于开发者快速验证API功能。
    • 登录认证支持: 为了保护API文档的安全,Knife4j 支持多种登录认证方式(如Basic Auth、OAuth2等),可以对接企业的统一认证系统,确保只有授权用户才能访问API文档。
    • 国际化支持: 内置多语言支持,可以根据用户浏览器的语言偏好自动切换界面语言,提高国际团队的协作效率。

    总结

    Spring Boot与Knife4j 3.0.3的整合,是提升API管理水平和团队协作效率的有效手段。它不仅简化了API文档的创建和维护工作,还通过增强的功能特性,为开发者和API使用者带来了前所未有的便利。无论是对于快速发展的创业公司还是大型企业级项目,这种整合都是构建高质量API不可或缺的一部分。

  • 相关阅读:
    BERT论文精读
    Linux快速入门
    echarts折线图如何防止label重叠,实现一上一下的效果
    C#小知识
    viple进阶2:打印九九乘法表
    Windows服务器TLS协议
    SpringBoot开发实用篇2---与数据层技术有关的替换和整合
    06【工厂设计模式】
    【网络安全】Web安全渗透三大核心方向
    深聊测开领域之:一文搞懂什么是敏捷测试,如何做敏捷测试,建议先收藏再学习。
  • 原文地址:https://blog.csdn.net/weixin_57057153/article/details/138132908