【发布时间】:2021-09-27 06:27:50
【问题描述】:
我有一个使用 NSwag library 的带有 REST API 和 Swagger 接口的工作 ASP .NET 5 应用程序(所以 不是 Swashbuckle,因为很多人使用)。我已经找到(或者至少我是这么认为的)一种设置服务器 url 的方法。有一个属性可以设置它。这是我的代码:
app.UseSwaggerUi3(settings =>
{
settings.ServerUrl = "https://XXXXX.YYYYY.com/ZZZZ";
settings.TransformToExternalPath = (url, request) =>
{
// Get the UI to properly find the relative path of the swagger json instead of absolute path.
string outputUrl;
if (url.EndsWith(".json") || request.Path.ToString().EndsWith("/")) outputUrl = ".." + url;
else outputUrl = request.PathBase + "." + url;
return outputUrl;
};
});
但是,在运行我的应用程序并使用 swagger 接口时,根本不使用设置的服务器 url...它只是引用相同的主机,因为它没有设置它。我知道可以在需要时更改 swagger 的路由行为(如此处所述,我也使用了this code),但这基本上解决了无法找到 swagger json 的问题。但是,我没有找到有效设置服务器 url 的方法。当我使用本文中显示的代码时,执行请求时的请求url在不使用时引用相同的url。
我该如何解决这个问题?如何有效设置服务器url?这太奇怪了。我看起来该属性根本没有做任何事情。
【问题讨论】:
标签: asp.net-core .net-core swagger nswag