jHipster Swagger UI 路径问题,当部署到 Cloud Foundry 时



我已经将注册表、网关和微服务部署到Cloud Foundry。微服务在注册表中可用,并且已在网关中成功注册。

尝试在 Swagger UI 中调用调用时,Swagger 生成的 url 如下所示:

https://<microservice_route_with_port>/api/service_name/api/action_name

上述操作失败,并显示">服务器无响应"错误。

通过 Swagger UI 调用时,我期望的 URL - 并且通过 Curl 调用验证可以正常工作 - 是:

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]}
  1. 在将微服务部署到 PCF 时,Swagger 如何指向gateway_url_without_port?(我已经使用jHipster cloudfoundry子生成器将服务部署到PCF,所以它应该在内部处理这个问题吗?
  2. 我是否需要将 baseUrl 指向与子生成器代码中swagger-ui/index.html或其他位置的网关相同?
  3. 或者,这可以通过指定显式路由在manifest.yml中完成吗?

谢谢!

通过指定主机名暂时解决此问题:

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();

相关内容

  • 没有找到相关文章

最新更新