Просмотр исходного кода

😁增加获取所有接口/动态API服务(下一步实现所有接口权限设置)

zuohuaijun 2 лет назад
Родитель
Сommit
10906c95c8

+ 1 - 1
Admin.NET/Admin.NET.Application/Configuration/Logging.json

@@ -8,7 +8,7 @@
       "Microsoft.EntityFrameworkCore": "Information"
     },
     "File": {
-      "Enabled": true, // 启用文件日志
+      "Enabled": false, // 启用文件日志
       "FileName": "logs/{0:yyyyMMdd}_{1}.log", // 日志文件
       "Append": true, // 追加覆盖
       // "MinimumLevel": "Information", // 日志级别

+ 31 - 0
Admin.NET/Admin.NET.Core/Service/Common/Dto/ApiOutput.cs

@@ -0,0 +1,31 @@
+// 麻省理工学院许可证
+//
+// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
+//
+// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
+//
+// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
+// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
+
+namespace Admin.NET.Core.Service;
+
+/// <summary>
+/// 接口/动态API输出
+/// </summary>
+public class ApiOutput
+{
+    /// <summary>
+    /// 组名称
+    /// </summary>
+    public string GroupName { get; set; }
+
+    /// <summary>
+    /// 接口名称
+    /// </summary>
+    public string DisplayName { get; set; }
+
+    /// <summary>
+    /// 路由名称
+    /// </summary>
+    public string RouteName { get; set; }
+}

+ 53 - 0
Admin.NET/Admin.NET.Core/Service/Common/SysCommonService.cs

@@ -0,0 +1,53 @@
+// 麻省理工学院许可证
+//
+// 版权所有 (c) 2021-2023 zuohuaijun,大名科技(天津)有限公司  联系电话/微信:18020030720  QQ:515096995
+//
+// 特此免费授予获得本软件的任何人以处理本软件的权利,但须遵守以下条件:在所有副本或重要部分的软件中必须包括上述版权声明和本许可声明。
+//
+// 软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于对适销性、适用性和非侵权的保证。
+// 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,与软件或其使用或其他交易有关。
+
+using Microsoft.AspNetCore.Mvc.ApiExplorer;
+using Swashbuckle.AspNetCore.SwaggerGen;
+
+namespace Admin.NET.Core.Service;
+
+/// <summary>
+/// 系统通用服务
+/// </summary>
+[ApiDescriptionSettings(Order = 101)]
+[AllowAnonymous]
+public class SysCommonService : IDynamicApiController, ITransient
+{
+    private readonly IApiDescriptionGroupCollectionProvider _apiProvider;
+
+    public SysCommonService(IApiDescriptionGroupCollectionProvider apiProvider)
+    {
+        _apiProvider = apiProvider;
+    }
+
+    /// <summary>
+    /// 获取所有接口/动态API
+    /// </summary>
+    /// <returns></returns>
+    [DisplayName("获取所有接口/动态API")]
+    public List<ApiOutput> GetApiList()
+    {
+        var apiList = new List<ApiOutput>();
+        foreach (var item in _apiProvider.ApiDescriptionGroups.Items)
+        {
+            foreach (var apiDescription in item.Items)
+            {
+                var displayName = apiDescription.TryGetMethodInfo(out MethodInfo apiMethodInfo) ? apiMethodInfo.GetCustomAttribute<DisplayNameAttribute>(true)?.DisplayName : "";
+
+                apiList.Add(new ApiOutput
+                {
+                    GroupName = item.GroupName,
+                    DisplayName = displayName,
+                    RouteName = apiDescription.RelativePath
+                });
+            }
+        }
+        return apiList;
+    }
+}