/// <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", "无分组"); }
/// <summary> /// 添加信息 /// </summary> /// <param name="options">SwaggerUI选项配置</param> /// <param name="name">名称</param> /// <param name="url">地址</param> internal static void AddInfo(this SwaggerUIOptions options, string name, string url) { if (options.ExistsApiVersion(name, url)) { return; } var urlMaps = BuildContext.Instance.GetUrlMaps(); urlMaps[name] = url; options.SwaggerEndpoint(url, name); }