Admin.Core/src/platform/ZhonTai.ApiUI/ApiUIBuilderExtensions.cs
(完整代码) 1KBusing System;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Microsoft.AspNetCore.Hosting;
#if NETSTANDARD2_0
using IWebHostEnvironment = Microsoft.AspNetCore.Hosting.IHostingEnvironment;
#endif
namespace ZhonTai.ApiUI
{
public static class ApiUIBuilderExtensions
{
/// <summary>
/// Register the SwaggerUI middleware with provided options
/// </summary>
public static IApplicationBuilder UseSwaggerUI(this IApplicationBuilder app, ApiUIOptions options)
{
return app.UseMiddleware<ApiUIMiddleware>(options);
}
/// <summary>
/// Register the SwaggerUI middleware with optional setup action for DI-injected options
/// </summary>
public static IApplicationBuilder UseApiUI(
this IApplicationBuilder app,
Action<ApiUIOptions> setupAction = null)
{
ApiUIOptions options;
using (var scope = app.ApplicationServices.CreateScope())
{
options = scope.ServiceProvider.GetRequiredService<IOptionsSnapshot<ApiUIOptions>>().Value;
setupAction?.Invoke(options);
}
// To simplify the common case, use a default that will work with the SwaggerMiddleware defaults
if (options.ConfigObject.Urls == null)
{
var hostingEnv = app.ApplicationServices.GetRequiredService<IWebHostEnvironment>();
options.ConfigObject.Urls = new[] { new UrlDescriptor { Name = $"{hostingEnv.ApplicationName} v1", Url = "v1/swagger.json" } };
}
return app.UseSwaggerUI(options);
}
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
