/// <summary> /// 启用Api分组 /// </summary> /// <typeparam name="TEnum">枚举类型</typeparam> /// <param name="options">SwaggerUI选项</param> public static void EnableApiGroup <TEnum>(this SwaggerUIOptions options) where TEnum : struct { var type = typeof(TEnum); if (!type.IsEnum) { return; } type.GetFields().Skip(1).ToList().ForEach(x => { var info = x.GetCustomAttributes(typeof(SwaggerApiGroupInfoAttribute), false) .OfType <SwaggerApiGroupInfoAttribute>().FirstOrDefault(); var url = $"/swagger/{x.Name}/swagger.json"; var name = info != null ? info.Title : x.Name; if (options.ExistsApiVersion(name, url)) { return; } options.SwaggerEndpoint($"/swagger/{x.Name}/swagger.json", info != null ? info.Title : x.Name); }); if (options.ExistsApiVersion("/swagger/NoGroup/swagger.json", "无分组")) { return; } options.SwaggerEndpoint("/swagger/NoGroup/swagger.json", "无分组"); }
public static void ConfigureUI(SwaggerUIOptions options) { options.SwaggerEndpoint($"/swagger/{SwaggerConstants.InvestorsGroup}/swagger.json", SwaggerConstants.InvestorsTitle); options.SwaggerEndpoint($"/swagger/{SwaggerConstants.AdministratorsGroup}/swagger.json", SwaggerConstants.AdministratorsTitle); options.SwaggerEndpoint($"/swagger/{SwaggerConstants.AnalyticsGroup}/swagger.json", SwaggerConstants.AnalyticsTitle); options.DocExpansion("list"); options.InjectOnCompleteJavaScript("customizations/BearerAuth.js"); }
public static void SetupSwaggerUIOptions(this SwaggerUIOptions options) { options.DocumentTitle = "ProjectName BoundedContext Api V1 Docs"; options.RoutePrefix = "docs"; options.SwaggerEndpoint("/docs/v1/json", "ProjectName BoundedContext Api V1 Docs"); options.SwaggerEndpoint("/docs/admin-v1/json", "ProjectName BoundedContext Admin Api V1 Docs"); options.IndexStream = () => Assembly.GetExecutingAssembly() .GetManifestResourceStream("BoundedContext.Api.Swagger.CustomUI.index.html"); options.OAuthClientId("resourceowner"); options.OAuthClientSecret("TPOAuthClientSecret"); options.OAuthRealm("realm"); options.OAuthAppName("BoundedContext"); }
private static void ConfigureSwaggerUI(SwaggerUIOptions options) { var name = "Restaurant.Api v1"; var url = "/swagger/v1/swagger.json"; options.SwaggerEndpoint(url, name); }
private static void AddSwaggerEndpointToUi(SwaggerUIOptions swaggerUIOptions, IEnumerable <SwaggerConfigurationModel> swaggerConfigurations) { foreach (var swaggerConfiguration in swaggerConfigurations) { swaggerUIOptions.SwaggerEndpoint($"/swagger/{swaggerConfiguration.ApiVersion}/swagger.json", $"{swaggerConfiguration.ApiName} {swaggerConfiguration.ApiVersion}"); } }
public static void SwaggerEndpoint(this SwaggerUIOptions options, IEnumerable <ServiceEntry> entries, string areaName) { var list = new List <Info>(); var assemblies = entries.Select(p => p.Type.Assembly).Distinct(); foreach (var assembly in assemblies) { var version = assembly .GetCustomAttributes(true) .OfType <AssemblyFileVersionAttribute>().FirstOrDefault(); var title = assembly .GetCustomAttributes(true) .OfType <AssemblyTitleAttribute>().FirstOrDefault(); var des = assembly .GetCustomAttributes(true) .OfType <AssemblyDescriptionAttribute>().FirstOrDefault(); if (version == null || title == null) { continue; } var info = new Info() { Title = title.Title, Version = version.Version, Description = des?.Description, }; options.SwaggerEndpoint($"../swagger/{info.Title}/swagger.json", info.Title, areaName); } }
private static void ConfigureSwaggerUI(SwaggerUIOptions options, IApiVersionDescriptionProvider provider) { foreach (var description in provider.ApiVersionDescriptions.Reverse()) { options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant()); } }
private void SetupSwaggerUI(SwaggerUIOptions options) { options.SwaggerEndpoint( $"{appConfiguration.ServerAddress}/swagger/{appConfiguration.Version}/swagger.json", $"{appConfiguration.Name} API {appConfiguration.Version}" ); }
private static void AddSwaggerEndPoints(SwaggerUIOptions c, IEnumerable <SwaggerEndPointOptions> endPoints, string basePath) { foreach (var endPoint in endPoints) { c.SwaggerEndpoint($"{endPoint.Url}{basePath}", endPoint.Name); } }
public static SwaggerUIOptions VersioningSwaggerEndpoints(this SwaggerUIOptions options, IApiVersionDescriptionProvider provider, string docDescriptionFormat, bool urlRelative) { if (options == null) { throw new ArgumentNullException(nameof(options)); } if (provider == null) { throw new ArgumentNullException(nameof(provider)); } if (string.IsNullOrWhiteSpace(docDescriptionFormat)) { throw new ArgumentNullException(nameof(docDescriptionFormat)); } foreach (var description in provider.ApiVersionDescriptions) { var endPointUrl = $"{description.GroupName}/swagger.json"; if (!urlRelative) { endPointUrl = $"/{options.RoutePrefix}/{endPointUrl}"; } options.SwaggerEndpoint(endPointUrl, string.Format(docDescriptionFormat, description.GroupName.ToUpperInvariant())); } return(options); }
/// <inheritdoc /> public void Configure(SwaggerUIOptions options) { if (options == default) { throw new ArgumentNullException(nameof(options)); } foreach (var apiVersionDescription in _apiVersionDescriptionProvider.ApiVersionDescriptions) { var name = apiVersionDescription.GroupName; var url = $"./swagger/{name}/swagger.json"; options.SwaggerEndpoint(url, name); } options.RoutePrefix = _options.RoutePrefix; if (IsNullOrWhiteSpace(_options.Info?.Title)) { return; } var sb = new StringBuilder(_options.Info.Title); if (!IsNullOrWhiteSpace(_options.Info?.Description)) { sb.AppendLine(); sb.Append(_options.Info.Description); } options.DocumentTitle = sb.ToString(); if (_options.OAuthConfig != default) { options.OAuthConfigObject = _options.OAuthConfig; } }
private static void SetupSwaggerUiOptions(SwaggerUIOptions options) { options.DisplayRequestDuration(); options.DocumentTitle = typeof(Startup).Assembly.GetCustomAttribute <AssemblyProductAttribute>()?.Product; options.SwaggerEndpoint($"/swagger/{ApiVersions.V1}/swagger.json", ApiVersions.V1); options.RoutePrefix = "api/docs"; }
/// <summary> /// Configures swagger UI for this API /// </summary> public static void Configure(this SwaggerUIOptions c) { foreach (var v in GetVersions()) { c.SwaggerEndpoint($"/swagger/{v}/swagger.json", $"Product API {v}"); } }
public static void UseSwaggerUI(SwaggerUIOptions c, IWebHostEnvironment env, string moduleName = "", string version = "v1") { c.SwaggerEndpoint(version + "/swagger.json", "OMSLegacy: " + moduleName + ", Env:" + env.EnvironmentName); c.DocExpansion(DocExpansion.None); c.OAuthClientId(""); c.OAuthClientSecret(""); }
public static void ConfigureUI(SwaggerUIOptions options, IConfiguration config) { options.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Api"); options.RoutePrefix = ""; options.SupportedSubmitMethods(new SubmitMethod[0]); options.InjectStylesheet("/swagger-custom-styles.css"); }
private static void ConfigureModules(this SwaggerUIOptions c, string endPoint, ModuleCollection modules) { foreach (var module in modules.Modules.Where(x => x.EnableSwagger)) { var path = endPoint.Replace("{module}", module.Name); c.SwaggerEndpoint(path, module.Name); } }
private static void SetupSwaggerUi(SwaggerUIOptions options) { options.DocumentTitle = ProjectName; options.SwaggerEndpoint(SwaggerUrl, ProjectName); options.DocExpansion(DocExpansion.Full); }
private static void ConfigureSwaggerUIOptions(SwaggerUIOptions options, IApiVersionDescriptionProvider provider) { var root = Utility.GetSetting <string>(Settings.AppRoot); foreach (var description in provider.ApiVersionDescriptions) { options.SwaggerEndpoint($"{root}/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant()); } }
/// <summary> /// Configure swagger UI options /// </summary> #pragma warning disable CA1822 // Mark members as static public void ConfigureSwaggerUiOptions(SwaggerUIOptions options) #pragma warning restore CA1822 // Mark members as static { // TODO: Either use the SwaggerGen generated Swagger contract (generated from C# classes) options.SwaggerEndpoint("/swagger/0.1.0/swagger.json", "Meetup Management Service API"); // TODO: Or alternatively use the original Swagger contract that's included in the static files // options.SwaggerEndpoint("/swagger-original.json", "Meetup Management Service API Original"); }
public static void ConfigureSwaggerVersions(this SwaggerUIOptions swaggerUIOptions, IApiVersionDescriptionProvider provider, SwaggerVersionOptions versionOptions) { foreach (var apiVersionDescription in provider.ApiVersionDescriptions) { var url = string.Format(versionOptions.RouteTemplate, apiVersionDescription.GroupName); var description = string.Format(versionOptions.DescriptionTemplate, apiVersionDescription.GroupName); swaggerUIOptions.SwaggerEndpoint(url, description); } }
protected override void ConfigureSwagger(SwaggerUIOptions options, IApiVersionDescriptionProvider provider) { options.RoutePrefix = string.Empty; // build a swagger endpoint for each discovered API version foreach (var description in provider.ApiVersionDescriptions) { options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", description.GroupName.ToUpperInvariant()); } }
static void ConfigureSwaggerUI(this SwaggerUIOptions swaggerUIOptions, IApiVersionDescriptionProvider versionProvider) { foreach (var apiVersion in versionProvider.ApiVersionDescriptions) { swaggerUIOptions.SwaggerEndpoint($"/{AppDomain.CurrentDomain.FriendlyName.ToLower()}/swagger/v{apiVersion.ApiVersion}/swagger.json", $"{AppDomain.CurrentDomain.FriendlyName} - v{apiVersion.ApiVersion}"); } swaggerUIOptions.RoutePrefix = "swagger"; swaggerUIOptions.DocExpansion(DocExpansion.List); }
private void ConfigureSwaggerUI(SwaggerUIOptions options) { ExtendedOpenApiInfo openApiInfo = Configuration.GetSection("Swagger").Get <ExtendedOpenApiInfo>(); if (!string.IsNullOrWhiteSpace(openApiInfo?.UriResource)) { string name = openApiInfo.Name ?? "Unknown"; options.SwaggerEndpoint($"/swagger/{openApiInfo.UriResource}/swagger.json", name); } }
private void SetSwaggerOptions(SwaggerUIOptions options) { string settingKey = Constant.AppSettingKey.AppApiEndpointUrl; string endpointUrl = AppSetting.GetValue(settingKey); settingKey = Constant.AppSettingKey.AppApiVersion; string apiVersion = AppSetting.GetValue(settingKey); options.SwaggerEndpoint(endpointUrl, apiVersion); }
private static void ConfigureSwaggerUI(SwaggerUIOptions swaggerUI) { swaggerUI.DocumentTitle = "Martian Robots OpenAPI"; swaggerUI.SwaggerEndpoint("./openapi.json", "live"); swaggerUI.DefaultModelsExpandDepth(-1); swaggerUI.DisplayRequestDuration(); swaggerUI.InjectStylesheet("./openapi.css"); swaggerUI.InjectJavascript("./openapi.js"); swaggerUI.EnableDeepLinking(); }
private static void AddSwaggerEndPoints(SwaggerUIOptions c, IEnumerable <SwaggerEndPointOptions> endPoints, string basePath) { foreach (var endPoint in endPoints) { foreach (var config in endPoint.Config) { c.SwaggerEndpoint($"{basePath}/{config.Version}/{endPoint.KeyToPath}", $"{config.Name} - {config.Version}"); } } }
internal void SetConfigurationSwaggerUIMenu(SwaggerUIOptions options) { var webApiAssembly = Assembly.GetEntryAssembly(); var apiVersions = GetApiVersions(webApiAssembly); foreach (var apiVersion in apiVersions) { options.SwaggerEndpoint(url: $"../swagger/v{apiVersion}/swagger.json", name: $"Documentation V{apiVersion}"); } }
private static void ConfigureSwaggerUI(this SwaggerUIOptions swaggerUIOptions, IApiVersionDescriptionProvider versionProvider) { var swaggerJsonBasePath = string.IsNullOrWhiteSpace(swaggerUIOptions.RoutePrefix) ? "." : ".."; foreach (var apiVersion in versionProvider.ApiVersionDescriptions) { swaggerUIOptions.SwaggerEndpoint($"{swaggerJsonBasePath}/swagger/v{apiVersion.ApiVersion}/swagger.json", $"{ApiName} - v{apiVersion.ApiVersion}"); } swaggerUIOptions.RoutePrefix = string.Empty; swaggerUIOptions.DocExpansion(DocExpansion.None); }
public void Configure(SwaggerUIOptions opts) { opts.DocumentTitle = $"{_appName} API Documentation"; opts.RoutePrefix = RoutePrefix; foreach (var description in _provider.ApiVersionDescriptions) { opts.SwaggerEndpoint($"../{opts.RoutePrefix}/{description.GroupName}/{SwaggerDocName}", description.GroupName.ToUpperInvariant()); } }
private static void AddSwaggerEndPoints(SwaggerUIOptions c, IEnumerable <SwaggerEndPointOptions> endPoints, string basePath) { if (endPoints == null) { return; } foreach (var endPoint in endPoints) { c.SwaggerEndpoint($"{basePath}/{endPoint.KeyToPath}", endPoint.Name); } }