介绍

  • 这是我配置swagger的一个补充项
  • 针对多个springboot 的单体项目的文档聚合

    • 多个单体项目只需要提供一个文档地址

      引入依赖

      1. <dependency>
      2. <groupId>org.springframework.boot</groupId>
      3. <artifactId>spring-boot-starter-web</artifactId>
      4. </dependency>
      5. <dependency>
      6. <groupId>com.github.xiaoymin</groupId>
      7. <artifactId>knife4j-aggregation-spring-boot-starter</artifactId>
      8. <version>2.0.8</version>
      9. </dependency>
      10. <dependency>
      11. <groupId>org.springframework.boot</groupId>
      12. <artifactId>spring-boot-starter-test</artifactId>
      13. <scope>test</scope>
      14. </dependency>

      开始配置

  • application.yml ```yaml server: port: 19081 knife4j: enableAggregation: true cloud: enable: true routes:

    1. - name: 测试分组1
    2. uri: knife4j.xiaominfo.com
    3. location: /v2/api-docs?group=2.X版本
    4. - name: 测试分组2
    5. uri: knife4j.xiaominfo.com
    6. location: /v2/api-docs?group=3.默认接口
    7. - name: 测试分组3
    8. uri: 192.168.0.51:8080
    9. location: /api/multistage/v2/api-docs?group=version2.0
  1. <a name="YqswM"></a>
  2. # 示例测试
  3. - 启动访问 127.0.0.1:8080/doc.html
  4. - ![image.png](https://cdn.nlark.com/yuque/0/2021/png/1642320/1609913553750-ef9802e7-0f52-4484-a288-ec6be611a5ef.png#align=left&display=inline&height=916&margin=%5Bobject%20Object%5D&name=image.png&originHeight=916&originWidth=1777&size=78394&status=done&style=none&width=1777)
  5. <a name="NH3mr"></a>
  6. # 注意事项
  7. 1. 项目的编码集,由于我配中有中文,项目确实GBK的编码,导致第一次测试失败,页面加载不了接口数据
  8. 2. 配置 `uri` 注意,只需要 ip+port ,要不要在后面加上后缀,根据需求决定,加上接口会多一重路径
  9. 1. 项目使用 soul网关 统一入口之后,参考一下配置
  10. ```yaml
  11. # 网关IP端口
  12. xxxGateway:
  13. urlPort: 192.168.0.51:9195
  14. knife4j:
  15. enableAggregation: true
  16. cloud:
  17. enable: true
  18. routes:
  19. - name: 内置用户
  20. uri: ${xxxGateway.urlPort}/smartUser # 网关IP端口+网关前缀
  21. location: /user/v2/api-docs?group=version2.0 # 详细地址 项目真实地址 /smartUser + /user/v2/api-docs?group=version2.0
  22. servicePath: /smartAppointment # 该属性是最终在Ui中展示的接口前缀属性(跟随网关的前缀)
  23. - name: 全文检索
  24. uri: ${xxxGateway.urlPort}/smartSolr
  25. location: /solr/v2/api-docs?group=version2.0 # 详细地址
  26. servicePath: /smartAppointment
  27. - name: 主体项目
  28. uri: ${xxxGateway.urlPort}/smartAppointment
  29. location: /mian/v2/api-docs?group=version2.0 # 详细地址
  30. servicePath: /smartMian
  1. 第二步配置好的同时, location 前面要配置项目的访问前缀,要不然接口会报错