跳至主要內容

swagger聚合组件

杨轩-国实信息大约 1 分钟常用组件接口文档

git地址:

http://10.16.202.103:8089/component/component-ser/swagger-spring-boot-starter

聚合接口文档在线地址:

http://10.16.202.109:7778/#/service-search

解决问题

  • swagger文档在每个项目中,在服务很多的情况下,要记很多地址
  • 服务停止后,swagger文档无法打开,开发阶段如果服务没有部署在服务器上,后端不在线的话前端无法查看接口文档

本组件适用于spring cloud + nacos的架构,服务启动时主动发现上传swagger信息到文档聚合中心。

使用方法

  1. 引入pom依赖
<dependency>
    <groupId>com.gosci.tech</groupId>
    <artifactId>swagger-spring-boot-starter</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>
  1. 激活profile
spring:
  profiles:
    active: swagger
  1. 配置swagger示例
knife:
  aggregate:
    base-package: com.gosci.tech.reservoir
    description: 即墨水库API文档
    group:
      # 此项配置需唯一
      appName: reservoir
      # 此项配置需唯一
      name: 即墨水库API文档
    api:
      title: 即墨水库API文档
      contactName: 765666922@qq.com
    serverUrl: http://10.16.202.109:17812
  1. 观察结果

    如果服务启动之后出现了如下的日志,则表示已经注册成功

2023-11-29 14:37:58 [task-1] INFO  c.g.t.s.core.SwaggerRegistryService - start register swagger
2023-11-29 14:37:58 [task-1] INFO  c.g.t.s.core.SwaggerRegistryService -  register swagger info ,result=true

打开在线地址即可查看文档:

目前存在的问题

在聚合模式下,无法使用原生swagger的调式功能,所以本功能目前只能用作文档查看。

core包中集成了原生knife4j的功能,如果要用swagger进行调试的话,可以使用项目地址+doc.html进入原地址进行调试。