spring-boot - Swagger 为 REST 端点生成的主机名无效 REQUEST url

标签 spring-boot swagger

我们的应用程序部署在使用以下代码开发的 DC/OS 内 spring boot (2.0.6.RELEASE) 和 swagger (2.6.1)。

我们遇到的问题是通过访问 swagger

https://api.example.com/appname/swagger-ui.html这工作正常,并通过我们所有的 REST 端点返回 swagger UI。

当我尝试通过 swagger 请求我们的 API 时,此主机名将更改为 https://api.example.com:80

Wrong request URL generated by swagger - https://api.example.com:80/health

Correct request URL should be https://api.example.com/appname/health

添加的屏幕截图实际域名已更改。 enter image description here

我们的配置

@SpringBootApplication
@EnableSwagger2
public class AppConfig {
    
    public static void main(String[] args) {
        SpringApplication.run(AppConfig.class, args);
    }
}

我想了解

  • 如何为请求 URL 生成主机名?
  • 为什么不是基于访问的URL的相对路径?
  • 如何配置 swagger 的这个基本 url,以便请求 url 可以基于用于访问 swagger 的 URL 进行相对。

最佳答案

您可以查看Springfox Swagger generating requests with port 80 for HTTPS URLS对于报告的类似问题

您可以设置属性

springfox.documentation.swagger.v2.host=api.example.com

或者通过配置API

docket.host("your host url")

关于spring-boot - Swagger 为 REST 端点生成的主机名无效 REQUEST url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53929469/

相关文章:

java - Spring JPA 存储库中的 CrudRepository

java - 将 JSON 文档保留为字符串

intellij-idea - 在 Intellij 中找不到日志记录路径

java - 如何将Swagger相关的静态文件添加到Spring Boot + Jersey应用程序中?

python - 在 swagger python 服务器 stub 处将 token 授权装饰器添加到端点的任何解决方法

java - Swagger codegen 生成太长的字符串文字

kotlin - Swagger-UI和Ktor如何导入swagger.json或.yaml文件启动Swagger-UI?

java - Spring WebClient获取请求返回 "Connection refused: localhost/"

spring-mvc - 如何在 Spring Boot 中忽略 Post 请求正文中的空值

spring - 获取我的 REST API 文档的 Spring Boot Swagger 配置有什么问题?为什么我无法访问文档?