NET Swagger显示控制器注释

199 阅读1分钟
  options.DocumentFilter<SwaggerEnumFilter>();
  /// <summary>
        /// 实现IDocumentFilter接口的Apply函数
        /// </summary>
        /// <param name="swaggerDoc"></param>
        /// <param name="context"></param>
        public void Apply(Microsoft.OpenApi.Models.OpenApiDocument swaggerDoc, DocumentFilterContext context)
        {
            Dictionary<string, Type> dict = GetAllEnum();

            foreach (var item in swaggerDoc.Components.Schemas)
            {
                var property = item.Value;
                var typeName = item.Key;
                Type itemType = null;
                if (property.Enum != null && property.Enum.Count > 0)
                {
                    if (dict.ContainsKey(typeName))
                    {
                        itemType = dict[typeName];
                    }
                    else
                    {
                        itemType = null;
                    }
                    List<OpenApiInteger> list = new List<OpenApiInteger>();
                    foreach (var val in property.Enum)
                    {
                        list.Add((OpenApiInteger)val);
                    }
                    property.Description += DescribeEnum(itemType, list);
                }
            }
            if (swaggerDoc.Info.Version == "wps管理")
            {
                swaggerDoc.Tags = new List<Microsoft.OpenApi.Models.OpenApiTag>
            {
                new Microsoft.OpenApi.Models.OpenApiTag{ Name="NewsInfo",Description="消息中心"},
                  new Microsoft.OpenApi.Models.OpenApiTag{ Name="Fagui",Description="法律法规"},
                     new Microsoft.OpenApi.Models.OpenApiTag{ Name="Qy",Description="企业微信"},
    new Microsoft.OpenApi.Models.OpenApiTag{ Name="UserBehavior",Description="日志"},
            };
            }

            if (swaggerDoc.Info.Version == "诉前法律管理")
            {
                swaggerDoc.Tags = new List<Microsoft.OpenApi.Models.OpenApiTag>
            {
                new Microsoft.OpenApi.Models.OpenApiTag{ Name="Chart",Description="南安统计"},
                  new Microsoft.OpenApi.Models.OpenApiTag{ Name="Consult",Description=" 法信智能问答"},
                     new Microsoft.OpenApi.Models.OpenApiTag{ Name="Doc",Description="文书导出"},
    new Microsoft.OpenApi.Models.OpenApiTag{ Name="Proposal",Description="意见书"},
            };
            }
        }