如何解决OpenAPI Specification 3.0在浏览器和服务器下拉列表中显示不同的URL
我们正在使用OpenApi规范v1.4.8。我们有负载均衡器URL和域URL。域网址http://market.place.com/productsservice/swagger-ui.html
和负载均衡器网址为http://7649263.path.aws.com/productsservice/swagger-ui.html
。
由于该域存在一些持续的网络问题,我们已转向使用负载均衡器URL来测试应用程序。当我使用上面的负载均衡器URL访问swagger ui时,我看到服务器中的域URL下拉列表(没有在任何地方添加它)。因此,浏览器地址栏和“服务器”下拉列表中的URL是不同的。
由于Swagger使用“服务器”下拉列表中的基本URL来构造测试路径,并且我的域无法正常工作,因此无法从Swagger UI发出请求。当使用浏览器中的负载平衡器URL时,该请求可以通过邮递员正常工作。
是否有一些配置可以使服务器下拉URL和浏览器URL基本路径相同?我们正在尝试做的是,“服务器”下拉列表需要使用与浏览器地址栏中相同的网址。
解决方法
我想到了您遇到此问题的一个原因。如果在OpenAPI配置中使用了 io.swagger.v3.oas.models.servers.Server ,则应签入代码-
OpenAPI oas = new OpenAPI();
......
......
String url = "/market.place.com/"
List<Server> servers = new ArrayList<Server>();
Server server = new Server();
server.setUrl(url);
servers.add(server);
oas.setServers(servers);
如果您依靠编程方法来配置openAPI,并且您的代码中有类似上面的内容,那么这可能就是您看到域URI的原因。您可以将其替换为正确的URI,以使其正常工作。
,可能您有openapi 3 configuration java class
。
你应该
新的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))
...
}
例如我的服务器静态IP是
109.162.230.178
并且我必须使用此 Openapi 3 UI
从Internet上我本地网络之外的另一台计算机上。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。