Spring Boot 框架集成Knife4j

knife4j是什么?

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

Swagger是什么?

前后端分离开发模式中,api文档是最好的沟通方式。

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

1、及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)

2、规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)

3、一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)

4、可测性 (直接在接口文档上进行测试,以方便理解业务)

了解过之后我们直接实战

一.首先在新建的spring boot中添加依赖

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

记得查看有没有下方这个依赖,没有的话添加上

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.5.0</version>
</dependency>

二.添加knife4配置类

package com.example.testknife4j.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;

import java.util.ArrayList;
import java.util.List;

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {
    @Bean
    public Docket adminApiConfig(){


        List<Parameter> pars = new ArrayList<>();
        ParameterBuilder tokenPar = new ParameterBuilder();
        tokenPar.name("xgs")
                .description("用户xgs")
                .defaultValue("")
                .modelRef(new ModelRef("string"))
                .parameterType("header")
                .required(false)
                .build();
        pars.add(tokenPar.build());
        //添加head参数end

        Docket adminApi = new Docket(DocumentationType.SWAGGER_2)
                .groupName("adminApi")
                .apiInfo(adminApiInfo())
                .select()
                //扫描包中所有的
                .apis(RequestHandlerSelectors.basePackage("com.example.testknife4j"))
//                .paths(PathSelectors.regex("/admin/.*"))
                .build()
                .globalOperationParameters(pars);
        return adminApi;
    }

    private ApiInfo adminApiInfo(){

        return new ApiInfoBuilder()
                .title("后台管理系统-API文档")
                .description("接口说明")
                .version("v2.0")
                .build();
    }
}

三.在IndexController.java创建一个简单的RESTful接口,代码示例如下

package com.example.testknife4j.controller;


import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@Api(tags = "首页模块")
@RestController
public class indexController {
    @ApiImplicitParam(name = "name",value = "姓名",required = true)
    @ApiOperation(value = "向客人问好")
    @GetMapping("/sayHi")
    public ResponseEntity<String> sayHi(@RequestParam(value = "name")String name){
        return ResponseEntity.ok("Hi:"+name);
    }
}

四.项目完整结构为

五.启动Spring Boot工程,在浏览器中访问:http://localhost:8080/doc.html

如果打不开,因该是你的端口不是8080,可以在查看启动日志

根据端口号做出调整,一般原始端口没改过的都是8080

 六.查看Api

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot可以集成多个接口文档框架,其中两个比较常用的是Swagger和Knife4j。下面分别介绍它们的集成方法: 1. Swagger集成: Swagger是一个开源的接口文档框架,可以帮助我们生成、展示和测试API文档。在Spring Boot中,我们可以通过添加相应的依赖和配置来集成Swagger。 首先,在pom.xml文件中添加Swagger的依赖: ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> ``` 然后,在Spring Boot的启动类上添加`@EnableSwagger2`注解: ```java import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableSwagger2 @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 接下来,我们可以在Controller类的方法上使用Swagger的注解来描述接口信息,例如: ```java import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @Api(tags = "示例接口") public class SampleController { @GetMapping("/hello") @ApiOperation("示例接口") public String hello() { return "Hello, Swagger!"; } } ``` 最后,启动Spring Boot应用程序,访问`http://localhost:8080/swagger-ui.html`即可查看生成的接口文档。 2. Knife4j集成Knife4j是Swagger的增强版,提供了更多的功能和样式定制。在Spring Boot中,我们可以通过添加相应的依赖和配置来集成Knife4j。 首先,在pom.xml文件中添加Knife4j的依赖: ```xml <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.2</version> </dependency> ``` 然后,在Spring Boot的启动类上添加`@EnableKnife4j`注解: ```java import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; @EnableKnife4j @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 接下来,我们可以在Controller类的方法上使用Knife4j的注解来描述接口信息,例如: ```java import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @Api(tags = "示例接口") public class SampleController { @GetMapping("/hello") @ApiOperation("示例接口") public String hello() { return "Hello, Knife4j!"; } } ``` 最后,启动Spring Boot应用程序,访问`http://localhost:8080/doc.html`即可查看生成的接口文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值