我目前已经实现了Swagger,并且我注意到资源的基本URL是在JSON资源文件中硬编码的,理想情况下我想让用户能够更改不同json语言的基本URL。因此,例如,让他们能够在同一页面上提交来自一个环境的get和来自另一个环境的put,因为我正在使用多个环境,否则他们必须在每个环境中更改JSON他们每次想要使用新环境时的资源。有谁知道这是否可行?
答案 0 :(得分:3)
这是可能的,我通过以下方式实现:
在swaggerui中,我通过javascript获取网址以编程方式声明我的网址:
// Get the url:
theUrl = window.location.protocol+"//" + window.location.host+"/docs";
window.swaggerUi = new SwaggerUi({
url: theUrl,..other parameters...})
在我的json文件中,我声明了一个资源,我只是将我的basepath声明为" /"如下图所示:
{
"apiVersion": "1.0.0",
"swaggerVersion": "1.2",
"basePath": "/",
"resourcePath": "/api/myapi".......
希望有所帮助!
答案 1 :(得分:1)
动态更改目标服务器(发送REST请求的位置)的主机名(并覆盖JSON文件中的值):
$.each(window.swaggerUi.api.apis, function(key, val) {
window.swaggerUi.api.apis[key].basePath = "http://target:port";
});