knife4j实现微服务swagger文档聚合

使用knife4j实现分布式swagger文档聚合

在项目开发过程中,接口文档的使用是在所难免的,但是在微服务场景下,多个服务之间的swagger是分散的,虽然swagger提供了微服务的聚合方式,配置过于繁琐,加之swagger本身的功能比较少,而且ui布局也比较蛋痛,此处推荐一款新框架用于增强swagger以及实现微服务接口文档的聚合

knife4j官方文档:https://doc.xiaominfo.com/docs/

此处使用文档中提供的Spring Cloud Gateway网关聚合 | Knife4j (xiaominfo.com)方式

依赖引入

在整个项目的父pom中

    <properties><springdoc.version>2.0.2</springdoc.version><knife4j.version>4.0.0</knife4j.version></properties>
<dependencyManagement>
<!--            swagger--><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-api</artifactId><version>${springdoc.version}</version></dependency><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webflux-api</artifactId><version>${springdoc.version}</version></dependency><!--knife4j 分布式接口文档聚合--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-gateway-spring-boot-starter</artifactId><version>${knife4j.version}</version></dependency>
</dependencyManagement>

gateway,因为gateway是基于webflux构建的因此需要导入的是webflux版本的swagger依赖

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-gateway-spring-boot-starter</artifactId>
</dependency>
<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webflux-api</artifactId><scope>provided</scope>
</dependency>

服务server

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
</dependency>

配置文件编写

服务server:

springdoc:swagger-ui:path: /swaggertags-sorter: alphaoperations-sorter: alphaapi-docs:path: /服务名称/api-docs

gateway:

gateway:discovery:locator:enabled: true#此处是配置服务的路由routes:#        XXX模块- id: XXX-serveruri: lb://XXX-serverpredicates:- Path=/XXX/**knife4j:# 聚合swagger文档gateway:enable: trueroutes:#此处需要与上面的配置对应- name: XXX服务url: /XXX/api-docs?group=defaultservice-name: XXX-serverorder: 1        

到此为止,knife4j文档聚合就完成了

直接运行

启动项目之后直接访问gateway地址/doc.html即可

image-20230708152134096

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18412.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Element UI组件中el-col、el-row布局学习笔记

一、简介 el-col&#xff1a;列。是Element UI布局中的核心组件&#xff0c;他的作用的将一行分成24个网格&#xff0c;为了方便我们在不同的设备上适配不同的屏幕大小。我们可以通过指定span属性来确定一行中所占的网格数。 el-row&#xff1a;行。包裹在el-col外层&#xf…

Matlab 入门简介

MATLAB 的工作界面默认布局自定义布局历史记录窗口调用以前运行过的语句 常用操作1. 清除操作clc 效果clear 效果clfclf 帮助文档clf 效果 close 效果 2. 帮助 Matlab 中的数据结构矩阵的数据访问向量化操作的内置函数 常量与变量1. 常量表2. 变量的命名规则3. 语句的常见形式 …

CVE-2023-23752-Joomla权限绕过漏洞研判分析

CVE-2023-23752-Joomla权限绕过漏洞分析 简介 Joomla是一个开源免费的内容管理系统&#xff08;CMS&#xff09;&#xff0c;基于PHP开发。 在其4.0.0版本到4.2.7版本中&#xff0c;存在一处属性覆盖漏洞&#xff0c;导致攻击者可以通过恶意请求绕过权限检查&#xff0c;访问…

day31-EMP项目实战(servlet+jsp)

0目录 EMP项目实战&#xff08;servletjsp&#xff09; 1. 1. 创建maven工程&#xff0c;导入依赖&#xff0c;创建service&#xff08;服务包&#xff09;&#xff0c;dao&#xff08;持久包&#xff09;&#xff0c;servlet&#xff08;控制包&#xff09;&#xff0c;enti…

华大HC32F460 TCP Server实验

目录 1.实验目标 2.实验准备 3.主流程图 4.驱动代码 5.实验步骤 1.实验目标 本实验使用W5500服务器功能&#xff0c;通过串口实现与本地客户端透传数据。 2.实验准备 硬件搭建&#xff1a;ZW-HC32F460-BZ标准版开发板1套 软件搭建&#xff1a;MDK5.22 3.主流程图 4.驱动…

CopyOnWriteArrayList使用以及原理分析

文章目录 一、CopyOnWriteArrayList的简介二、CopyOnWriteArrayList类的继承关系1、Iterable接口&#xff1a;2、Collection接口&#xff1a;3、List接口&#xff1a;4、Cloneable接口&#xff1a;5、Serializable接口&#xff1a;6、RandomAccess接口&#xff1a; 三、CopyOnW…

Java 匿名对象

一、简介 1.1.含义 没有名字的对象 。以常规的创建对象的方法&#xff1a; AtomicInteger atomicInteger new AtomicInteger(100000);格式&#xff1a; 类名 变量名 new 类名(); 这样就完成了对象的创建。注意&#xff1a;&#xff08;&#xff09;内可以无参数&#xff0c…

前端|项目实操流程|学成在线项目实操

参考视频&#xff1a;黑马程序员前端CSS3基础教程&#xff0c;前端必备基础 目录 &#x1f4da;案例准备工作 &#x1f4da;CSS属性书写顺序 &#x1f407;布局定位属性 &#x1f407;自身属性 &#x1f4da;页面布局整体思路 &#x1f4da;学成在线项目制作 &#x1f4…

DevOps(一)

DevOps 1. DevOps起源1.1 瀑布开发模型1.2 敏捷开发模型 2. DevOps到底是什么&#xff1f;3. DevOps与虚拟化、容器、微服务4. CI/CD是什么 &#xff1f;4.1 CI 持续集成&#xff08;Continuous Integration&#xff09;4.2 CD 持续交付&#xff08;Continuous Delivery&#x…

【Matlab】智能优化算法_亨利气体溶解度优化算法HGSO

【Matlab】智能优化算法_亨利气体溶解度优化算法HGSO 1.背景介绍2.数学模型2.1 亨利定律2.2 HGSO 3.文件结构4.伪代码5.详细代码及注释5.1 Create_Groups.m5.2 Evaluate.m5.3 fun_checkpoisions.m5.4 fun_getDefaultOptions.m5.5 HGSO.m5.6 main.m5.7 sumsqu.m5.8 update_posit…

微信小程序input的placeholder脱离文档流

今天进行真机调试时input的提示词 placeholder脱离了文档流&#xff0c;但是奇怪的是input框没有脱离文档流 如下图所示&#xff1a; 微信开发工具正常&#xff1a; 真机&#xff1a;不正常 脱离文档流 解决方法&#xff1a; <view clas…

【NeRF】相机的内外参是什么?单目相机是如何成像的?

文章目录 【NeRF】相机的内外参是什么&#xff1f;单目相机是如何成像的&#xff1f;1.相机外参2.相机内参 【NeRF】相机的内外参是什么&#xff1f;单目相机是如何成像的&#xff1f; 在做Nerf时对其中的一些原理感到困惑&#xff0c;因而把这些基础理论知识总结下来&#xff…