W tej chwili zaimplementowałem Swagger i zauważyłem, że podstawowy adres zasobów jest zakodowany w plikach zasobów JSON, idealnie chciałbym dać użytkownikowi możliwość zmiany adresu bazowego dla różnych jsonów. Tak więc, na przykład, daj im możliwość przedstawienia wpływu z jednego środowiska i umieszczenia go na innym na tej samej stronie, ponieważ pracuję z wieloma środowiskami, w przeciwnym razie musieliby zmienić JSON w każdym ze swoich zasobów czas chcą korzystać z nowego środowiska. Czy ktoś wie, czy to jest możliwe?Czy podstawowy adres URL może zmienić Swagger?
5
A
Odpowiedz
3
Jest to możliwe, a ja wdrożenia tego w następujący sposób:
W swaggerui, programowo deklaruję url przez pobieranie url poprzez javascript:
// Get the url:
theUrl = window.location.protocol+"//" + window.location.host+"/docs";
window.swaggerUi = new SwaggerUi({
url: theUrl,..other parameters...})
w moich plikach json, gdzie Oświadczam zasób, właśnie deklaruję swoją ścieżkę podstawową jako "/", jak pokazano poniżej:
{
"apiVersion": "1.0.0",
"swaggerVersion": "1.2",
"basePath": "/",
"resourcePath": "/api/myapi".......
Nadzieję, że pomaga!
1
Aby zmienić dynamicznie nazwę hosta (i zastępują wartości z pliku JSON) z docelowym serwerem (w przypadku gdy wniosek jest wysyłany REST):
$.each(window.swaggerUi.api.apis, function(key, val) {
window.swaggerUi.api.apis[key].basePath = "http://target:port";
});
Kiedy/gdzie jest to kod powinien działać? –
To kod javascript do wykonania na stronie Swagger, aby zmienić wszystkie podstawowe pathes –