From 2ded3a98fba7fe025de8aad2f2bb2b41fd8e4f7d Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期一, 04 八月 2025 16:10:44 +0800 Subject: [PATCH] feat:优化友好结果 --- FlexJobApi.Core/settings.json | 1 + FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResult.cs | 5 +++++ FlexJobApi.Core/FlexJobApi.Core.xml | 8 +++++++- FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs | 21 +++++++++++++++------ 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml index 41ce047..125dddc 100644 --- a/FlexJobApi.Core/FlexJobApi.Core.xml +++ b/FlexJobApi.Core/FlexJobApi.Core.xml @@ -3035,6 +3035,11 @@ 鐘舵�佺爜 </summary> </member> + <member name="P:FlexJobApi.Core.FriendlyResult`1.ErrorCode"> + <summary> + 閿欒鐮� + </summary> + </member> <member name="P:FlexJobApi.Core.FriendlyResult`1.Data"> <summary> 鏁版嵁 @@ -3106,13 +3111,14 @@ <param name="unifyResultSettings"></param> <returns></returns> </member> - <member name="M:FlexJobApi.Core.FriendlyResultProvider.GetResult(System.Int32,System.Boolean,System.Object,System.Object)"> + <member name="M:FlexJobApi.Core.FriendlyResultProvider.GetResult(System.Int32,System.Boolean,System.Object,System.String,System.Object)"> <summary> 杩斿洖 RESTful 椋庢牸缁撴灉闆� </summary> <param name="statusCode"></param> <param name="succeeded"></param> <param name="data"></param> + <param name="errorCode"></param> <param name="errors"></param> <returns></returns> </member> diff --git a/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResult.cs b/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResult.cs index 8c434e0..8e4ad74 100644 --- a/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResult.cs +++ b/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResult.cs @@ -23,6 +23,11 @@ public int? Code { get; set; } /// <summary> + /// 閿欒鐮� + /// </summary> + public string ErrorCode { get; set; } + + /// <summary> /// 鏁版嵁 /// </summary> public T Data { get; set; } diff --git a/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs b/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs index 1795d0c..a4aeb09 100644 --- a/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs +++ b/FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs @@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.CodeAnalysis; using System; using System.Collections.Generic; using System.Linq; @@ -31,6 +32,7 @@ GetResult( metadata.StatusCode, data: metadata.Data, + errorCode: metadata.ErrorCode.ToString(), errors: metadata.Errors), UnifyContext.GetSerializerSettings(context)); } @@ -47,6 +49,7 @@ GetResult( metadata.StatusCode, data: metadata.Data, + errorCode: metadata.ErrorCode.ToString(), errors: metadata.Errors) , UnifyContext.GetSerializerSettings(context)); } @@ -75,11 +78,13 @@ /// <returns></returns> public IActionResult OnValidateFailed(ActionExecutingContext context, ValidationMetadata metadata) { + UnifyContext.Fill(metadata.ValidationResult); return new JsonResult( GetResult( metadata.StatusCode ?? StatusCodes.Status400BadRequest, data: metadata.Data, - errors: metadata.ValidationResult), + errorCode: "s400", + errors: "鍙傛暟閿欒"), UnifyContext.GetSerializerSettings(context)); } @@ -104,16 +109,18 @@ case StatusCodes.Status401Unauthorized: await context.Response.WriteAsJsonAsync( GetResult( - statusCode, - errors: "401 Unauthorized"), + statusCode, + errorCode: "401", + errors: "401 Unauthorized"), App.GetOptions<JsonOptions>()?.JsonSerializerOptions); break; // 澶勭悊 403 鐘舵�佺爜 case StatusCodes.Status403Forbidden: await context.Response.WriteAsJsonAsync( GetResult( - statusCode, - errors: "403 Forbidden"), + statusCode, + errorCode: "403", + errors: "403 Forbidden"), App.GetOptions<JsonOptions>()?.JsonSerializerOptions); break; default: break; @@ -126,14 +133,16 @@ /// <param name="statusCode"></param> /// <param name="succeeded"></param> /// <param name="data"></param> + /// <param name="errorCode"></param> /// <param name="errors"></param> /// <returns></returns> - private static FriendlyResult<object> GetResult(int statusCode, bool succeeded = default, object data = default, object errors = default) + private static FriendlyResult<object> GetResult(int statusCode, bool succeeded = default, object data = default, string errorCode = null, object errors = default) { return new FriendlyResult<object> { TraceId = App.GetTraceId(), Code = statusCode, + ErrorCode = errorCode, Success = succeeded, Data = data, Errors = errors, diff --git a/FlexJobApi.Core/settings.json b/FlexJobApi.Core/settings.json index c72356f..0a56a9d 100644 --- a/FlexJobApi.Core/settings.json +++ b/FlexJobApi.Core/settings.json @@ -28,6 +28,7 @@ }, "AllowedHosts": "*", "FriendlyExceptionSettings": { + "HideErrorCode": true, "DefaultErrorCode": "500", "DefaultErrorMessage": "鏈嶅姟鍣ㄥ紓甯革紝璇疯仈绯荤鐞嗗憳" }, -- Gitblit v1.9.1