spring-boot - OpenAPI 规范 3.0 在浏览器和服务器下拉列表中显示不同的 url

标签 spring-boot swagger swagger-ui openapi openapi-generator

enter image description here

我们使用的是 OpenApi 规范 v1.4.8。我们有负载均衡器 url 和域 url。域 url http://market.place.com/productsservice/swagger-ui.html 和负载均衡器 url 是 http://7649263.path.aws.com/productsservice/swagger- ui.html.

由于域中存在一些持续的网络问题,我们已转而使用负载平衡器 url 来测试应用程序。当我使用上面的负载均衡器 url 访问 swagger ui 时,我在服务器下拉列表中看到域 URL(没有在任何地方添加它)。因此浏览器地址栏和服务器下拉列表中的 url 是不同的。

由于 Swagger 使用“服务器”下拉列表中的基本 url 来构建测试路径,而我的域无法正常工作,因此我无法从 Swagger UI 发出请求。当使用浏览器中的负载均衡器 url 时,请求可以通过 postman 正常工作。

是否有一些配置可以使服务器下拉 URL 和浏览器 url 基本路径相同?我们要做的是,Servers 下拉菜单需要使用浏览器地址栏中的 url。

最佳答案

可能您有 openapi 3 配置 java 类

你应该

new OpenAPI().addServersItem(...)


像这样编辑你的方法。
    
    private String ip="109.162.230.178";   //your ip

    private String port="8587";   //your port

    // if you have context add this line
    private String context="tws";   //your context

    @Bean
    public OpenAPI customOpenAPI() {
        return new OpenAPI()
                .addServersItem(new Server().url("http://"+ip+":"+port+"/"+context))
               ...
    }

现在你的 UI Combobox 是这样的: combobox


例如我的服务器静态ip是

109.162.230.178

而且我必须使用这个Openapi 3 UI

从 Internet 中本地网络之外的另一台计算机。

关于spring-boot - OpenAPI 规范 3.0 在浏览器和服务器下拉列表中显示不同的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64771055/

相关文章:

java - 无法使用 Hibernate JPA 更新嵌套实体

java - Spring Security LDAP 身份验证用户必须是 AD 组的成员

spring - 主模块和测试模块的单个 application.properties

java - 修改 swagger api 列表

docker - 通过Docker提供本地文件到swagger ui

spring-boot - 我为Spring Boot Docker容器添加负载平衡的选项是什么

spring-boot - 如何使用 springdoc for swagger open api 3.0 生成 Map<String, Object> 类型的 RequestBody?

java - 为什么 swagger 注释会生成带有默认路径前缀的 api-docs

spring-boot - Spring Boot OpenAPI 3 - 如何传递分页详细信息?

c# - 如何设置 SwashBuckle.AspNetCore.Swagger 以使用授权?