我已将部署注册表,网关和微服务部署到Cloud Foundry。微服务在注册表中可用,并且已在Gateway中成功注册。
当尝试在Swagger UI中调用调用时,Swagger生成的URL会这样:
https://<microservice_route_with_port>/api/service_name/api/action_name
以上内容失败,&#34; 服务器无响应&#34;错误。
当通过Swagger UI调用时,我期望的URL - 以及通过Curl调用验证可以正常工作的URL - 是:
https://<gateway_route_without_port>/service_name/api/action_name
顺便说一句,通过CURL或POSTMAN直接服务调用也可以正常工作(绕过网关):
https://<service_route_without_port>/api/action_name
application.yml文件具有以下配置:
eureka:
instance:
prefer-ip-address: false
hostname: ${vcap.application.uris[0]}
谢谢!
答案 0 :(得分:0)
通过指定主机名
,暂时解决了该问题Docket docket = new Docket(DocumentationType.SWAGGER_2)
.host(GATEWAY_ROUTE_WITHOUT_PORT) //Add
.apiInfo(apiInfo)
.forCodeGeneration(true)
.genericModelSubstitutes(ResponseEntity.class)
.select()
.paths(regex(DEFAULT_INCLUDE_PATTERN))
.build();