springboot整合knife4j全过程

 更新时间:2023年12月08日 08:54:58   作者:qingkong2358103969  
这篇文章主要介绍了springboot整合knife4j全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1.首先引用Knife4j的starter

Maven坐标如下:

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

2.以在配置文件中进行开启

部分配置如下:

# springdoc-openapi项目配置
springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: 'default'
      paths-to-match: '/**'
      packages-to-scan: com.xiaominfo.knife4j.demo.web
# knife4j的增强配置,不需要增强可以不配
knife4j:
  enable: true
  setting:
    language: zh_cn

3.最后使用OpenAPI3的规范注解

注释各个Spring的REST接口

示例代码如下:

@RestController
@RequestMapping("body")
@Tag(name = "body参数")
public class BodyController {

   @Operation(summary = "普通body请求")
   @PostMapping("/body")
   public ResponseEntity<FileResp> body(@RequestBody FileResp fileResp){
       return ResponseEntity.ok(fileResp);
   }

   @Operation(summary = "普通body请求+Param+Header+Path")
   @Parameters({
           @Parameter(name = "id",description = "文件id",in = ParameterIn.PATH),
           @Parameter(name = "token",description = "请求token",required = true,in = ParameterIn.HEADER),
           @Parameter(name = "name",description = "文件名称",required = true,in=ParameterIn.QUERY)
   })
   @PostMapping("/bodyParamHeaderPath/{id}")
   public ResponseEntity<FileResp> bodyParamHeaderPath(@PathVariable("id") String id,@RequestHeader("token") String token, @RequestParam("name")String name,@RequestBody FileResp fileResp){
       fileResp.setName(fileResp.getName()+",receiveName:"+name+",token:"+token+",pathID:"+id);
       return ResponseEntity.ok(fileResp);
   }
}

4.最后访问Knife4j的文档

地址:http://ip:port/doc.html即可查看文档

注意的是:如果在配置文件中修改context-path信息,比如context-path: /imageanalyse,

那访问地址就是http://ip:port//imageanalyse/doc.html

也可以建立一个默认基础Controller,当请求路径是/或者/swagger时,路由默认调转到相对应的页面上

@RestController
@Tag(name = "默认基础Controller")
public class IndexController {


    @Value("${server.servlet.context-path:#{null}}")
    private String contextPath;

    /**
     * 自动跳转Knife4j-UI地址
     * 
     * @param response
     * @throws IOException
     */
    @Operation(summary = "默认页跳转knife4j-ui")
    @GetMapping("/")
    public void index(HttpServletResponse response) throws IOException {
        String redirectPath="/doc.html";
        if(contextPath !=null && contextPath.length()>0){
            redirectPath = contextPath+redirectPath;
        }
        response.sendRedirect(redirectPath);
    }

    /**
     * 自动跳转Swagger-UI地址
     * 
     * @param response
     * @throws IOException
     */
    @Operation(summary = "默认页跳转swagger-ui")
    @GetMapping("/swagger")
    public void swagger(HttpServletResponse response) throws IOException {
        String redirectPath="/swagger-ui/index.html";
        if(contextPath !=null && contextPath.length()>0){
            redirectPath = contextPath+redirectPath;
        }
        response.sendRedirect(redirectPath);
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot配置多数据源并集成Druid和mybatis的操作

    springboot配置多数据源并集成Druid和mybatis的操作

    这篇文章主要介绍了springboot配置多数据源并集成Druid和mybatis的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 浅谈java中math类中三种取整函数的区别

    浅谈java中math类中三种取整函数的区别

    下面小编就为大家带来一篇浅谈java中math类中三种取整函数的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • springboot开启声明式事务的方法

    springboot开启声明式事务的方法

    本篇文章主要介绍了springboot开启声明式事务的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Java队列同步器之CountDownLatch实现详解

    Java队列同步器之CountDownLatch实现详解

    这篇文章主要介绍了Java队列同步器之CountDownLatch实现详解,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行,例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行,需要的朋友可以参考下
    2023-12-12
  • java中的三种取整函数总结

    java中的三种取整函数总结

    下面小编就为大家带来一篇java中的三种取整函数总结。希望对大家有所帮助。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-11-11
  • Java SpringBoot高级用法详解

    Java SpringBoot高级用法详解

    这篇文章主要为大家详细介绍了Java Spring Boot的一些高级用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-09-09
  • String字符串转BigDecimal时,报NumberFormatException异常的解决

    String字符串转BigDecimal时,报NumberFormatException异常的解决

    这篇文章主要介绍了String字符串转BigDecimal时,报NumberFormatException异常的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 简单理解遵循接口隔离原则的Java设计模式编程

    简单理解遵循接口隔离原则的Java设计模式编程

    这篇文章主要介绍了遵循接口隔离原则的Java设计模式编程,针对Java编程中interface接口方面的编写进行约束,需要的朋友可以参考下
    2016-02-02
  • Springmvc自定义异常处理器实现流程解析

    Springmvc自定义异常处理器实现流程解析

    这篇文章主要介绍了Springmvc自定义异常处理器实现流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • spring级联属性赋值的两种方式解析

    spring级联属性赋值的两种方式解析

    这篇文章主要介绍了spring级联属性赋值的两种方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论