From f90d3871fa6868a9f35c886148a156f18cee87bb Mon Sep 17 00:00:00 2001 From: chenchun Date: Tue, 16 Sep 2025 11:48:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=AF=E7=94=A8=20Furion=20=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E8=BF=94=E5=9B=9E=E7=BB=93=E6=9E=9C=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=BF=87=E6=BB=A4=E5=99=A8=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 `YiAbpWebModule` 中启用 `AddFurionUnifyResultApi` 以支持 Furion 风格的统一 API 返回格式 - 调整 `UnifyResultExtensions`,移除 `AbpExceptionFilter` 和 `AbpNoContentActionFilter`,确保统一结果过滤器优先执行 --- .../UnifyResult/UnifyResultExtensions.cs | 4 +++- Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Yi.Abp.Net8/framework/Yi.Framework.AspNetCore/UnifyResult/UnifyResultExtensions.cs b/Yi.Abp.Net8/framework/Yi.Framework.AspNetCore/UnifyResult/UnifyResultExtensions.cs index 20b8db9a..b9d1ae7f 100644 --- a/Yi.Abp.Net8/framework/Yi.Framework.AspNetCore/UnifyResult/UnifyResultExtensions.cs +++ b/Yi.Abp.Net8/framework/Yi.Framework.AspNetCore/UnifyResult/UnifyResultExtensions.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Swashbuckle.AspNetCore.SwaggerGen; using Volo.Abp.AspNetCore.Mvc.ExceptionHandling; +using Volo.Abp.AspNetCore.Mvc.Response; using Yi.Framework.AspNetCore.UnifyResult.Fiters; namespace Yi.Framework.AspNetCore.UnifyResult; @@ -20,9 +21,10 @@ public static class UnifyResultExtensions services.AddTransient(); services.AddMvc(options => { + options.Filters.RemoveAll(x => (x as ServiceFilterAttribute)?.ServiceType == typeof(AbpExceptionFilter)); + options.Filters.RemoveAll(x => (x as ServiceFilterAttribute)?.ServiceType == typeof(AbpNoContentActionFilter)); options.Filters.AddService(99); options.Filters.AddService(100); - options.Filters.RemoveAll(x => (x as ServiceFilterAttribute)?.ServiceType == typeof(AbpExceptionFilter)); }); return services; } diff --git a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs index f0db25c3..6d75fdad 100644 --- a/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs +++ b/Yi.Abp.Net8/src/Yi.Abp.Web/YiAbpWebModule.cs @@ -39,6 +39,7 @@ using Yi.Framework.AspNetCore.Authentication.OAuth.Gitee; using Yi.Framework.AspNetCore.Authentication.OAuth.QQ; using Yi.Framework.AspNetCore.Microsoft.AspNetCore.Builder; using Yi.Framework.AspNetCore.Microsoft.Extensions.DependencyInjection; +using Yi.Framework.AspNetCore.UnifyResult; using Yi.Framework.BackgroundWorkers.Hangfire; using Yi.Framework.Bbs.Application; using Yi.Framework.Bbs.Application.Extensions; @@ -130,8 +131,9 @@ namespace Yi.Abp.Web }); //采用furion格式的规范化api,默认不开启,使用abp优雅的方式 + //前置:需要将管道工作单元前加上app.Properties.Add("_AbpExceptionHandlingMiddleware_Added",false); //你没看错。。。 - //service.AddFurionUnifyResultApi(); + service.AddFurionUnifyResultApi(); //配置错误处理显示详情 Configure(options => { options.SendExceptionsDetailsToClients = true; }); @@ -393,8 +395,7 @@ namespace Yi.Abp.Web app.UseDefaultFiles(); app.UseDirectoryBrowser("/api/app/wwwroot"); - - // app.Properties.Add("_AbpExceptionHandlingMiddleware_Added",false); + //app.Properties.Add("_AbpExceptionHandlingMiddleware_Added",false); //工作单元 app.UseUnitOfWork();