当前位置: 首页 > news >正文

springcloud整合knike4j聚合微服务接口文档

一、介绍

在使用微服务架构开发的过程中,由于每个微服务都是独立的,因此很多开发人员在提供接口文档时,针对每一个服务也提供了独立的接口文档,

在使用容器部署的环境中缺点也更加突出,本来每一个服务容器都是通过网关访问的,它自身的ip和端口号并不被暴露出去,但是在容器部署环境下,我们不得不将服务容器的端口与主机端口进行绑定,通过主机ip+端口号访问接口文档。

在微服务环境下,不同服务的接口都是经过网关gateway作为统一入口进行转发访问的,因此不同服务的接口文档也应该有一个统一的入口。

那么有没有合适的方案,通过统一的入口,将各个微服务的接口文档进行聚合呢?答案是有的。

  • 方案一:通过网关对各个微服务的接口文档进行聚合。这样我们只需要通过访问网关就可以得到所有微服务的接口文档了。
  • 方案二:通过独立的微服务(称为接口文档微服务),该服务从注册中心中获取其他微服务,然后我们通过访问接口文档微服务就可以得到所有微服务的接口文档了。

而且巧的是,**knife4j**已经帮我们把这两种方案都实现了,我们通过demo对这两种方案进行演示。

二、不使用聚合文档

新建两个微服务:

  • student-service

    • 在pom中引入依赖knife4j-spring-boot-starter

      在这里插入图片描述

    • 配置文件

      在这里插入图片描述

    • 新建Knife4jConfiguration配置文件,对knife4j进行配置

      在这里插入图片描述

    • 添加接口BoyStudentControllerGirlStudentController

      在这里插入图片描述

      在这里插入图片描述

    • 通过http://localhost:8001/student/doc.html访问接口文档

      在这里插入图片描述

  • teacher-service

    • 在pom中引入依赖knife4j-spring-boot-starter

      在这里插入图片描述

    • 配置文件

      在这里插入图片描述

    • 新建Knife4jConfiguration配置文件,对knife4j进行配置

      在这里插入图片描述

    • 添加接口ChinessTeacherControllerEnglishTeacherController

      在这里插入图片描述

      在这里插入图片描述

    • 通过http://localhost:8002/teacher/doc.html访问接口文档

      在这里插入图片描述


不同的服务需要不同的地址访问,在微服务环境下,如果还是这样而没有统一的入口,那前端同事可能早就吃你的鱼了。

三、gateway网关聚合接口文档

在微服务环境中,网关作为各个服务的统一入口。因此可以考虑把网关也作为各个服务接口文档的统一入口。同时注册中心也是必不可少的。

student-serviceteacher-service两个服务的基础上,我们添加网关注册中心,注册中心我们以eureka为例

1. 新建eureka注册中心微服务eureka-server

  • 在pom中引入依赖

    在这里插入图片描述

  • 配置文件

    在这里插入图片描述

  • 启动类

    在这里插入图片描述

  • 访问注册中心,http://localhost:9001/eureka/

    在这里插入图片描述

2. 修改微服务

  • student-serviceteacher-service微服务添加pom依赖

    在这里插入图片描述

  • 修改文档配置类

    在这里插入图片描述

  • 配置注册中心

    在这里插入图片描述

  • 每个微服务主启动添加注解@EnableDiscoveryClient

    在这里插入图片描述

  • 启动student-serviceteacher-service微服务后查看eureka注册中心

    在这里插入图片描述

3. 新建网关服务gateway-service

  • 在pom中引入依赖knife4j-spring-boot-starter

    在这里插入图片描述

  • 路由配置

    在这里插入图片描述

  • 文档聚合配置

    • 资源配置

      在这里插入图片描述

    • 处理器配置

      在这里插入图片描述

  • 主启动类

    在这里插入图片描述

  • 打开eureka注册中心,查看网关是否注册成功

    在这里插入图片描述

  • 通过网关访问接口文档。http://localhost:9002/doc.html

    在接口文档的左上角有个下拉框,里面是我们在网关中配置的路由,在下拉框选择不同的项目,可以看到不同微服务的接口文档。

    在这里插入图片描述


    在这里插入图片描述

四、使用独立的接口文档服务

前面我们介绍的是通过网关gateway聚合微服务接口文档,但这种方案对网关存在一定的侵入。下面我们介绍通过注册中心聚合微服务接口文档,

1. 新建接口文档微服务

  • pom文件添加依赖

    在这里插入图片描述

  • 配置文件

    在这里插入图片描述

  • 启动类

    在这里插入图片描述

2. 启动接口文档微服务

启动服务后,通过该服务的ip和端口号,访问接口文档。如http://localhost:9003/knife4j/doc.html

可以看到,通过独立的服务聚合其他微服务接口文档这种方式更加简单,快速。

在这里插入图片描述

3.通过网关访问接口文档微服务

  • 在网关的配置文件中设置路由

    在这里插入图片描述

  • 通过网关访问接口文档

    地址:http://localhost:9002/knife4j/doc.html

    在这里插入图片描述

到此为止,微服务架构下聚合微服务接口文档的两种方式我们都介绍完了,

下期再见。



纸上得来终觉浅,绝知此事要躬行。

—————————我是万万岁,我们下期再见—————————

相关文章:

  • 学会这些方法,扩展磁盘分区还不是轻轻松松?
  • Chat GPT和飞书机器人,真的有那么多联系嘛?
  • Pikachu登录爆破之token爆破解析
  • Spring Cloud Alibaba 应用如何平滑迁移至 IPv6?
  • 2816. 判断子序列(双指针)
  • 技术宅小伙:关于前端的那些你不知道的事
  • [Python] 常用运算符
  • ES6新语法
  • vue3数据懒加载 无限滚动加载分页列表
  • 如何选择理想的三相浪涌保护器?
  • Dockerfile自定义镜像
  • 中国密封空气阻尼器行业发展趋势及需求前景预测报告2023-2029年
  • Javaweb | 初识、servlet应用
  • Vue2和Vue3响应式的实现原理
  • 20230331英语学习
  • MobTech 秒验|本机号码一键登录
  • MVCC及其在leveldb中的实现
  • tsconfig.json参数详解
  • 「 Redis 」缓存淘汰策略及内存淘汰策略
  • 多线程 (进阶) 死锁的成因和解决方案
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉