/// <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", "无分组");
        }
Esempio n. 2
0
        /// <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);
        }