Я использую swagger-ui для предоставления нашей документации для REST API.
Внутри у нас есть две разные среды, с которыми jenkin строит проект.
Например. swagger.json доступен в обеих средах как:
http://www.myhost.com/xyz/rest/swagger.json
https://www.myhost2.com/rest/swagger.json
Документация доступна как:
http://www.myhost.com/xyz/dist/index.html
https://www.myhost2.com/dist/index.html
Шаблон базы данных swagger api в web.xml:
<init-param>
<param-name>swagger.api.basepath</param-name>
<param-value>/rest</param-value>
</init-param>
ВОПРОС:
Я пытаюсь использовать функцию "Попробовать" на странице документации.
Соответствующий URL-адрес запроса для обоих хостов:
http://www.myhost.com/rest/getAUser
https://www.myhost2.com/rest/getAUser
Он работает для host2, поскольку он нажимает правильный URL. Однако он должен был поразить http://www.myhost.com/xyz/rest/getAUser
для хоста 1, но он нажимает на URL http://www.myhost.com/rest/getAUser
.
Есть ли способ указать несколько базовых путей для разных URL-адресов.
Мой swagger-ui html выглядит примерно так.
$(function () {
var href = window.location.href;
var url = href.substring(0, href.lastIndexOf("/dist"));
console.log(url);
// Pre load translate...
if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
window.swaggerUi = new SwaggerUi({
url: url + "/rest/swagger.json",
dom_id: "swagger-ui-container",
......
......
}