在 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
来源:https://www.cnblogs.com/victorbu/p/11128256.html