springboot集成knife4j接口文档

简介: springboot集成knife4j接口文档

一、介绍

在前后端配合开发中,后端人员提供的接口文档对前后端的完美配合往往起到举足轻重的作用,一个漂亮美观且功能强大的接口文档更是可以轻易获得前端妹子的青睐。而传统的接口文档插件swagger在漂亮美观功能强大方面它却一边的都不沾。今天给大家介绍一款基于swagger并作出增强的接口文档插件:kniife4j,推荐它的理由是漂亮美观且功能强大,且集成过程简单。下面是它的示例图

kniife4j效果图.png


下面我们开始将knife4j接口文档插件集成进springboot项目中。


二、第一步:添加pom依赖

<!-- 引入knife4j依赖 -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>

三、第二步:添加knife4j配置类

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
   
   

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
   
   
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        //.title("swagger-bootstrap-ui-demo RESTful APIs")
                        .description("学生服务")
                        .termsOfServiceUrl("http://www.xx.com/")
                        .contact("xx@qq.com")
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("2.X版本")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.idealhooray.student.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

四、第三步:业务接口

@Api(tags = "男学生")
@RestController
@RequestMapping("/boy")
public class BoyStudentController {
   
   

    @ApiOperation("根据姓名获取男学生")
    @ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "query")
    @GetMapping("/byName")
    public String getBoyStudentByName(@RequestParam("name") String name) {
   
   

        return "男学生:" + name;
    }
}
@Api(tags = "女学生")
@RestController
@RequestMapping("/girl")
public class GirlStudentController {
   
   

    @ApiOperation("根据姓名获取女学生")
    @ApiImplicitParam(name = "name", value = "姓名", required = true, paramType = "query")
    @GetMapping("/byName")
    public String getGirlStudentByName(@RequestParam("name") String name) {
   
   

        return "女学生:" + name;
    }

}

五、项目结构

src
│  ├─main
│  │  ├─java
│  │  │  └─com
│  │  │      └─idealhooray
│  │  │          └─student
│  │  │              ├─config
│  │  │                  └─Knife4jConfiguration.java
│  │  │              └─controller
│  │  │                  └─BoyStudentController.java
│  │  │                  └─GirlStudentController.java
│  │  │               └─StudentApplication.java
│  │  └─resources
│  │     └─application.yml

六、第四步:打开接口文档

启动项目后,打开接口文档http://ip:port/doc.html

kniife4j效果图.png

相关文章
|
10天前
|
Java 数据库连接 数据安全/隐私保护
springBoot集成token认证,最全Java面试知识点梳理
springBoot集成token认证,最全Java面试知识点梳理
|
12天前
|
NoSQL Java MongoDB
【MongoDB 专栏】MongoDB 与 Spring Boot 的集成实践
【5月更文挑战第11天】本文介绍了如何将非关系型数据库MongoDB与Spring Boot框架集成,以实现高效灵活的数据管理。Spring Boot简化了Spring应用的构建和部署,MongoDB则以其对灵活数据结构的处理能力受到青睐。集成步骤包括:添加MongoDB依赖、配置连接信息、创建数据访问对象(DAO)以及进行数据操作。通过这种方式,开发者可以充分利用两者优势,应对各种数据需求。在实际应用中,结合微服务架构等技术,可以构建高性能、可扩展的系统。掌握MongoDB与Spring Boot集成对于提升开发效率和项目质量至关重要,未来有望在更多领域得到广泛应用。
【MongoDB 专栏】MongoDB 与 Spring Boot 的集成实践
|
12天前
|
消息中间件 JSON Java
RabbitMQ的springboot项目集成使用-01
RabbitMQ的springboot项目集成使用-01
|
12天前
|
搜索推荐 Java 数据库
springboot集成ElasticSearch的具体操作(系统全文检索)
springboot集成ElasticSearch的具体操作(系统全文检索)
|
12天前
|
消息中间件 Java Spring
Springboot 集成Rabbitmq之延时队列
Springboot 集成Rabbitmq之延时队列
16 0
|
12天前
|
网络协议 Java Spring
Springboot 集成websocket
Springboot 集成websocket
18 0
|
12天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
该文是一系列关于从零开始手写实现 Apache Tomcat 的教程概述。作者希望通过亲自动手实践理解 Tomcat 的核心机制。文章讨论了 Spring Boot 如何实现直接通过 `main` 方法启动,Spring 与 Tomcat 容器的集成方式,以及两者生命周期的同步原理。文中还提出了实现 Tomcat 的启发,强调在设计启动流程时确保资源的正确加载和初始化。最后提到了一个名为 mini-cat(嗅虎)的简易 Tomcat 实现项目,开源于 [GitHub](https://github.com/houbb/minicat)。
|
12天前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
|
12天前
|
NoSQL Java Redis
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
387 0
|
12天前
|
存储 JSON Java
SpringBoot集成AOP实现每个接口请求参数和返回参数并记录每个接口请求时间
SpringBoot集成AOP实现每个接口请求参数和返回参数并记录每个接口请求时间
50 2