in src/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/SwaggerUI.cs [56:89]
public ISwaggerUI AddServer(IHttpRequestDataObject req, string routePrefix, IOpenApiConfigurationOptions options = null)
{
this._req = req;
var prefix = string.IsNullOrWhiteSpace(routePrefix) ? string.Empty : $"/{routePrefix}";
var baseUrl = $"{this._req.GetScheme(options)}://{this._req.Host}{prefix}";
this._swaggerUiApiPrefix = prefix.TrimEnd('/');
if (options.IsNullOrDefault())
{
this._baseUrl = baseUrl;
return this;
}
var server = new OpenApiServer { Url = baseUrl };
// Filters out the existing base URLs that are the same as the current host URL.
var servers = options.Servers
.Where(p => p.Url.TrimEnd('/') != baseUrl.TrimEnd('/'))
.ToList();
if (!servers.Any())
{
servers.Insert(0, server);
}
if (options.IncludeRequestingHostName
&& !servers.Any(p => p.Url.TrimEnd('/') == baseUrl.TrimEnd('/')))
{
servers.Insert(0, server);
}
this._baseUrl = servers.First().Url;
return this;
}