在 Swagger UI 中访问调用 URL
Access invocation URL in Swagger UI
在 Swagger-UI 的自定义 JavaScript 文件中,我试图访问请求 URL,因为我需要在提交请求之前将其添加到 header .
在查看了 swagger UI 的源代码后,我一直无法弄清楚如何访问请求 URL。
在我的自定义 JavaScript 文件中,我使用以下方法从 DOM 中窃取了作弊:
(function() {
$(function() {
$(".submit").click(function (e) {
// doesn't work
// log(SwaggerUi.Views.OperationView.invocationUrl);
var url = $($(this).parentsUntil(".operations")[3]).find(".path")[0].innerText;
log("URL: " + url);
});
});
})();
但由于这是一个 hack,如果路由有这样的参数,它将无法工作:url/{param}
。找到输入参数并替换将是我不想采取的另一个步骤。
我是否缺少一些简单的方法来访问请求 URL 类似以下内容的内容:SwaggerUi.requestUrl
设计解决方案遍历 DOM 以获取所需的信息,而不是使用 Swagger 存储的信息-UI。
(注意:使用 Swashbuckle 5.4 提供的嵌入式 Swagger-UI 如果您使用不同版本的 Swagger-UI,您的里程可能会有所不同)
$(".submit").click(function (e) {
var originalUrl = $($(this).parentsUntil(".operations")[3]).find(".path")[0].innerText;
log(originalUrl);
var outputUrl = "";
$($(this).parentsUntil(".operations")[3])
.find("tbody.operation-params tr:contains('path')")
.find("input")
.each(function () {
var pathParam = $(this).attr('name');
log(pathParam);
var userInput = $(this).val();
log(userInput);
outputUrl = originalUrl.replace("{" + pathParam + "}", userInput);
log(outputUrl);
});
// final requestUrl or invocationUrl
var requestUrl = $(".footer h4").html().match(/: (\/[\w-]+)/)[1] + outputUrl;
});
在 Swagger-UI 的自定义 JavaScript 文件中,我试图访问请求 URL,因为我需要在提交请求之前将其添加到 header .
在查看了 swagger UI 的源代码后,我一直无法弄清楚如何访问请求 URL。
在我的自定义 JavaScript 文件中,我使用以下方法从 DOM 中窃取了作弊:
(function() {
$(function() {
$(".submit").click(function (e) {
// doesn't work
// log(SwaggerUi.Views.OperationView.invocationUrl);
var url = $($(this).parentsUntil(".operations")[3]).find(".path")[0].innerText;
log("URL: " + url);
});
});
})();
但由于这是一个 hack,如果路由有这样的参数,它将无法工作:url/{param}
。找到输入参数并替换将是我不想采取的另一个步骤。
我是否缺少一些简单的方法来访问请求 URL 类似以下内容的内容:SwaggerUi.requestUrl
设计解决方案遍历 DOM 以获取所需的信息,而不是使用 Swagger 存储的信息-UI。
(注意:使用 Swashbuckle 5.4 提供的嵌入式 Swagger-UI 如果您使用不同版本的 Swagger-UI,您的里程可能会有所不同)
$(".submit").click(function (e) {
var originalUrl = $($(this).parentsUntil(".operations")[3]).find(".path")[0].innerText;
log(originalUrl);
var outputUrl = "";
$($(this).parentsUntil(".operations")[3])
.find("tbody.operation-params tr:contains('path')")
.find("input")
.each(function () {
var pathParam = $(this).attr('name');
log(pathParam);
var userInput = $(this).val();
log(userInput);
outputUrl = originalUrl.replace("{" + pathParam + "}", userInput);
log(outputUrl);
});
// final requestUrl or invocationUrl
var requestUrl = $(".footer h4").html().match(/: (\/[\w-]+)/)[1] + outputUrl;
});