2014-09-11 2 views
5

В настоящее время я реализовал Swagger, и я заметил, что базовый url для ресурсов жестко закодирован в файлах ресурсов JSON, в идеале я хотел бы дать пользователю возможность изменить базовый url для разных json verbages. Так, например, дайте им возможность отправить получение из одной среды и поместить от другого на той же странице, так как я работаю с несколькими средами, и в противном случае им придется изменять JSON в каждом из своих ресурсов каждый время, когда они хотят использовать новую среду. Кто-нибудь знает возможно ли это?Может ли изменение базового URL в Swagger?

ответ

3

Это возможно, и я реализую это следующим образом:

В swaggerui, программно декларировать свой URL, запрашивая URL-адрес с помощью JavaScript:

// Get the url: 
    theUrl = window.location.protocol+"//" + window.location.host+"/docs"; 

    window.swaggerUi = new SwaggerUi({ 
    url: theUrl,..other parameters...}) 

В моих JSon файлах, где я объявляю ресурс, я просто объявляю свой базовый путь как «/», как показано ниже:

{ 
    "apiVersion": "1.0.0", 
    "swaggerVersion": "1.2", 
    "basePath": "/", 
    "resourcePath": "/api/myapi"....... 

Надеюсь, что это поможет!

1

Чтобы динамически изменять имя хоста (и переопределить значение из файла JSON) из целевого сервера (где запрос REST отправляется):

$.each(window.swaggerUi.api.apis, function(key, val) { 
    window.swaggerUi.api.apis[key].basePath = "http://target:port"; 
}); 
+0

Когда/где этот код должен работать? –

+0

Это код javascript для выполнения на странице Swagger, чтобы изменить все базовые шаблоны –

Смежные вопросы