首页 > 其他分享 >SpringBoot集成knife4j

SpringBoot集成knife4j

时间:2023-03-16 19:34:42浏览次数:45  
标签:集成 knife4j SpringBoot 接口 文档 new com public

1. knife4j

文档地址:https://doc.xiaominfo.com/

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

2. Swagger介绍

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

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

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

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

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

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

 

3. 步骤

添加Maven依赖

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
添加knife4j配置类
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {

    @Bean
    public Docket adminApiConfig(){
        List<Parameter> pars = new ArrayList<>();
        ParameterBuilder tokenPar = new ParameterBuilder();
        tokenPar.name("token")
                .description("用户token")
                .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()
                //只显示admin路径下的页面
                .apis(RequestHandlerSelectors.basePackage("com.xxx"))
                .paths(PathSelectors.regex("/admin/.*"))
                .build()
                .globalOperationParameters(pars);
        return adminApi;
    }

    private ApiInfo adminApiInfo(){

        return new ApiInfoBuilder()
                .title("后台管理系统-API文档")
                .description("本文档描述了后台管理系统微服务接口定义")
                .version("1.0")
                .contact(new Contact("xxx", "http://xxx.com", "[email protected]"))
                .build();
    }


}
Controller层添加注解
@RestController
@RequestMapping("/admin/system/sysRole")
@Api(tags = "角色管理接口")
public class SysRoleController {
    @Autowired
    private SysRoleService service;

    @ApiOperation("查询所有角色")
    @RequestMapping("/findAll")
    public Result findAll() {
        List<SysRole> list = service.list();
        return Result.ok(list);
    }
}

 

标签:集成,knife4j,SpringBoot,接口,文档,new,com,public
From: https://www.cnblogs.com/muzhk/p/17223881.html

相关文章

  • IntelliJ IDEA集成本地Maven步骤
    IntelliJIDEA集成本地Maven步骤一、前期准备Maven已经在本地环境配置完成,步骤可以参考我的这篇文章:https://www.cnblogs.com/rainbow-1/p/17223811.html二、IDEAmave......
  • 狂神说 springboot集成redis
    文章目录1.概述1.1SpringData1.2lettuce2.部分源码2.1自动配置2.2Jedis.pool不生效3.使用4.序列化4.1为什么要序列化4.2为什么要自定义......
  • rocketMq springboot2 发送广播消息
    广播消息:一个点发送,所有有监听订阅的程序都能收到消息。应用场景:一个配置更新了,其他点都需要知道配置更新需加载。 mq创建主要是创建组时与队列有点区别mqadminupdateSubG......
  • SpringBoot部署到外部Tomcat无法注册到Nacos服务端
    事情经过近期做一个项目投标演示(POC)环境支持,需要集成Nacos服务端。考虑到现有项目中已经有了Nacos相关依赖,那还不简单?新建个服务端,配置几下重启不就搞定了吗?然而事情远......
  • SpringBoot 启动顺序 、BeanPostProcessor 、事务原理、三级缓存、SpringMVC
    SpringMVC先生成web容器,比如TOMCAT,然后注册servletDispathcer, Spring容器在DispatcherServlet里面BeanPOSTProcessor可以在bean生成后对bean属性进行更改事务是......
  • spring boot集成swagger3
    springboot集成swagger3 springboot集成swagger3swagger2的整合:https://www.cnblogs.com/chenglc/p/10910721.htmlswagger3的使用步骤和2略有差异maven依赖......
  • SpringBoot相关问题
    参考:https://juejin.cn/post/6844904125709156359为什么需要spring-boot-maven-pluginspring-boot-maven-plugin提供了像jar一样打包或者运行应用程序的命令spring-boot......
  • springboot中配置elasticSearch
    1.1.1 在build.gradle中添加需要的jar包   我创建的gradle工程,对应的maven工程也是一样,添加对应的jar包即可//添加SpringDataElasticsearch的依赖comp......
  • ABP 结合 MongoDB 集成依赖注入
    1.我们再ABP项目添加一个.NETCore类库 类库名自定定义,我这里定义为 TexHong_EMWX.MongoDb添加NuGet包。ABPmongocsharpdriver  添加 AbpMongoDbConfigurati......
  • 前后端分离项目(vue+springboot)集成pageoffice实现在线编辑office文件
    前后端分离项目下使用PageOffice原理图集成步骤前端vue项目在您Vue项目的根目录下index.html中引用后端项目根目录下pageoffice.js文件。例如:<scripttype="te......