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

    在这里插入图片描述

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

下期再见。



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

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

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: cloud-nacos-gateway-knife4j:swagger聚合文档是使用Spring Cloud和Nacos作为技术栈开发的一种解决方案。 Spring Cloud是一套开发分布式应用的工具集,它基于Spring Boot,用于构建微服务架构的应用程序。它提供了诸如服务注册与发现、服务追踪、负载均衡等功能,可以方便地实现微服务的开发和管理。在这个解决方案中,我们使用了Spring Cloud来构建和管理微服务。 Nacos是一个动态服务发现、配置管理和服务管理平台。它提供了服务注册与发现、配置管理、动态路由等功能,可以方便地实现微服务的注册与发现、配置的动态管理。在这个解决方案中,我们将使用Nacos作为服务注册与发现的中心。 Gateway是Spring Cloud的网关组件,它以微服务的方式构建网关,提供了统一的入口和出口,可以对请求进行路由、过滤、聚合等多种操作。在这个解决方案中,我们使用Gateway作为网关组件,统一管理和分发请求。 Knife4j是一个开源的Swagger文档聚合工具,它可以将多个微服务的Swagger文档聚合在一起,提供一个统一的API文档入口。在这个解决方案中,我们使用Knife4j聚合各个微服务的Swagger文档,方便开发人员查看和调试API接口。 综上所述,cloud-nacos-gateway-knife4j:swagger聚合文档使用了Spring Cloud、Nacos、Gateway和Knife4j等技术,通过Spring Cloud构建和管理微服务,使用Nacos实现服务注册与发现,通过Gateway实现统一的请求分发和路由,再通过Knife4j将各个微服务的Swagger文档聚合在一起,方便开发人员进行API的查看和调试。这个解决方案可以提高开发效率、简化架构,使得微服务的开发和管理更加方便和高效。 ### 回答2: cloud-nacos-gateway-knife4j是基于Spring Cloud、Nacos、Gateway和Knife4j等技术实现的Swagger聚合文档工具。 首先,这个工具使用了Spring Cloud框架,它是一种用于构建分布式系统的解决方案。Spring Cloud提供了一系列插件和组件,使得我们可以轻松地构建、部署和管理分布式应用。这些组件包括服务发现与注册、服务间调用、负载均衡、断路器等等。在cloud-nacos-gateway-knife4j中,我们使用Spring Cloud来实现服务注册与发现的功能,使得不同的微服务可以方便地相互调用。 其次,cloud-nacos-gateway-knife4j还使用了Nacos作为服务的注册中心。Nacos是一个开源的动态服务发现、配置和服务管理平台,它提供了服务注册、服务发现、服务配置、路由配置等功能。在cloud-nacos-gateway-knife4j中,我们使用Nacos作为服务注册中心,来管理微服务的地址和配置信息。 另外,cloud-nacos-gateway-knife4j还使用了Gateway作为API网关。API网关是系统的统一入口,它可以处理一些通用的非业务功能,如身份认证、请求转发、限流等等。在cloud-nacos-gateway-knife4j中,我们使用Gateway作为API网关,实现了请求的转发和一些基本的安全控制功能。 最后,cloud-nacos-gateway-knife4j还使用了Knife4j作为Swagger的UI界面。Swagger是一种用于构建、文档化和调试RESTful接口的工具,它提供了一套非常直观的界面来展示接口信息和测试接口。在cloud-nacos-gateway-knife4j中,我们使用Knife4j来生成并展示聚合文档,使得接口文档更加友好和易用。 总的来说,cloud-nacos-gateway-knife4j是一个基于Spring Cloud、Nacos、Gateway和Knife4j等技术实现的Swagger聚合文档工具。它利用这些技术的优势,帮助开发者更好地管理和维护微服务,并提供了友好的界面来查看和测试接口文档。 ### 回答3: Cloud-Nacos-Gateway-Knife4j 是一个使用 Spring Cloud 和 Nacos 技术实现的聚合文档,其中集成了 Swagger。它可以帮助开发者更便捷地查看和管理项目的 API 文档。 Spring Cloud 是一个开发微服务架构的框架,提供了许多功能,例如服务注册与发现、配置管理、负载均衡等。Nacos 是一个用于服务注册与发现、动态配置管理的平台,可以实现服务的自动发现和配置更新。这两个技术结合起来,可以方便地构建和管理微服务架构。 Cloud-Nacos-Gateway-Knife4j 中的 Gateway 是一个 API 网关,它可以承担路由和负载均衡的作用,将外部请求转发给后端的微服务Knife4j 是一个为 Swagger 提供增强功能的工具,可以生成美观的 API 文档,并提供了在线测试接口的功能。 在使用 Cloud-Nacos-Gateway-Knife4j 架构时,我们可以通过 Nacos 注册中心管理和发现微服务,以及实现动态的配置更新。Gateway 作为入口,将外部请求转发到相应的微服务。同时,我们可以使用 Knife4j 生成并展示微服务的 API 文档,便于开发者查看和调试接口。 总之,Cloud-Nacos-Gateway-Knife4j 提供了一种基于 Spring Cloud 和 Nacos 的微服务架构解决方案,提供了服务注册发现、配置管理、API 文档和在线测试等功能,为开发者带来了更加便捷和高效的开发体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

理想万岁万万岁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值