【问题标题】:jHipster Swagger UI path issues when deployed to Cloud Foundry部署到 Cloud Foundry 时的 jHipster Swagger UI 路径问题
【发布时间】:2017-07-12 18:43:01
【问题描述】:

我已将 Registry、Gateway 和一个微服务部署到 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 subgenerator 将服务部署到 PCF,所以它应该在内部处理这个问题?)
  2. 我是否需要在 swagger-ui/index.html 或子生成器代码的其他地方将 baseUrl 指向与网关相同?
  3. 或者,这可以通过指定显式路由在 manifest.yml 中完成吗?

谢谢!

【问题讨论】:

    标签: jhipster swagger-ui cloud-foundry jhipster-registry


    【解决方案1】:

    通过指定主机名暂时解决了这个问题:

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

    【讨论】:

    • 你在哪里做这个改变?
    • @freemanpolys 我在 jHipster 创建的自动生成的 SwaggerConfiguration.java 文件中进行了此更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 2017-08-16
    相关资源
    最近更新 更多