在搭建分布式应用时,每个应用通过纳科在网关出装配了路由,我们希望网关也可以将所有的应用的轻便界面聚合起来。这样前端开发的时候只需要访问网关的狂妄就可以,而不用访问每个应用的狂妄。
springcloud +网关+纳科+大摇大摆
大摇大摆页面是一个单页面应用,所有的显示的数据都是通过和springfox.documentation.swagger.web。ApiResponseController进行数据交互,首先通过/swagger-resources获取大摇大摆资源信息,获取的信息格式如下:[{名称:“默认”,url:“/v2/api文档”,swaggerVersion:“2.0”,地点:“/v2/api文档”}],其中名字代表大摇大摆生成的接口组的组名,如图所示:
url
代表大摇大摆接口组的详细信息可以通过localhost: 8081/v2/api文档来获取,如下图:
/* *
*聚合各个服务的大摇大摆接口
*
* @author ksyzz
* @since & lt; pre> 2019/04/09</pre>
*/@ component
公共类MySwaggerResourceProvider实现SwaggerResourcesProvider {/* *
* swagger2默认的url后缀
*/私有静态最终字符串SWAGGER2URL="/v2/api文档”;/* *
*网关路由
*/私人最终RouteLocator RouteLocator;/* *
*网关应用名称
*/@ value (" $ {spring.application.name} ")
私人弦自我;
@ autowired
公共MySwaggerResourceProvider (RouteLocator RouteLocator) {
这一点。routeLocator=routeLocator;
}
@Override
公共List 然后定义一个接口类:/* *
*大摇大摆聚合接口,三个接口都是swagger-ui.html需要访问的接口
*
* @author ksyzz
* @since & lt; pre> 2019/04/09</pre>
*/@RestController
@RequestMapping ("/swagger-resources”)
公开课SwaggerResourceController {
私人MySwaggerResourceProvider swaggerResourceProvider;
@ autowired
公共SwaggerResourceController (MySwaggerResourceProvider swaggerResourceProvider) {
这一点。swaggerResourceProvider=swaggerResourceProvider;
}
@RequestMapping (value=" https://www.yisu.com/configuration/security ")
公共ResponseEntity
比;swaggerResources () {
返回新ResponseEntity<祝辞(swaggerResourceProvider.get (), HttpStatus.OK);
}
}
springcloud网关聚合swagger2的方法示例