使用 Zuul 聚合多个微服务的 Swagger 文档
2024-10-20 01:22:17
在 Spring Boot 中集成 Swagger 可参考之前的文章:Spring Boot 2 集成 Swagger, 在各个微服务中的配置与之相同;本文仅介绍在 Zuul 中的配置
在 Zuul 项目中添加配置
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Autowired
ZuulProperties properties;
@Primary
@Bean
public SwaggerResourcesProvider swaggerResourcesProvider() {
return () -> {
List<SwaggerResource> resources = new ArrayList<>();
properties.getRoutes().values().stream()
.forEach(route -> resources
.add(createResource(route.getServiceId(), route.getServiceId(), "2.0")));
return resources;
};
}
private SwaggerResource createResource(String name, String location, String version) {
SwaggerResource swaggerResource = new SwaggerResource();
swaggerResource.setName(name);
swaggerResource.setLocation("/" + location + "/v2/api-docs");
swaggerResource.setSwaggerVersion(version);
return swaggerResource;
}
}
其中 /v2/api-docs 为 Swagger 的 api
测试
访问 http://localhost:8762/swagger-ui.html 即可看到效果 (8762 为 Zuul 项目的端口)
注意事项
- 各个微服务可以不引用 swagger-ui 依赖包,仅在 Zuul 项目引用即可
- 如果微服务中使用了Spring Security 需要放行 /v2/api-docs
完整代码:GitHub
最新文章
- javascript [object,Object]
- AngularJs ngClass、ngClassEven、ngClassOdd、ngStyle
- Hibernate不能自动建数据表解决办法
- Hbase的连接池--HTablePool被Deprecated之后
- ASP.NET MVC轻教程 Step By Step 6——改进表单
- Java基础知识强化之集合框架笔记12:Collection集合存储字符串并遍历
- 怎样用Eclipse正确导入开源库AndroidStaggeredGrid
- linux pagecache与内存占用
- Thinkpad W540通过扩展坞连接显示器后蓝屏原因
- PJSUA2开发文档--第十一章 网络问题
- Echars鼠标点击事件多次触发
- eclipse项目名称后面括号里的名称和项目名称不一样
- oracle 把查询结果插入到表中几种方式
- 【MongoDB学习-安装流程】
- input文字颜色、光标颜色
- 两种方式创建支持SSH服务的docker镜像
- CSUOJ1329——一行盒子_湖南省第九届大学生计算机程序设计竞赛
- BZOJ 2131 圈地计划(最小割+黑白染色)
- BZOJ3509 [CodeChef] COUNTARI 【分块 + fft】
- String和stringbuffer和stringbuilder的区别
热门文章
- P2346 四子连棋
- Java复制数组的方法
- 适合 C++ 新手学习的开源项目——在 GitHub 学编程
- How to get last SysExcelWorksheet object row or column[X++]
- leetcode116:search-for-a-range
- 鸿蒙开发板外设控制 之 实现物理按键的“长按事件”(按键通用框架 V0.0.2)
- Jmeter-全局变量跨线程组使用
- C语言中宏的作用
- C# 中大端序与小端序
- VS2017新建MVC+ORM中的LinqDb访问数据库项目