sunpengfei
2025-08-04 2ded3a98fba7fe025de8aad2f2bb2b41fd8e4f7d
feat:优化友好结果
4个文件已修改
35 ■■■■ 已修改文件
FlexJobApi.Core/FlexJobApi.Core.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResult.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/Utils/FriendlyResultUtils/FriendlyResultProvider.cs 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FlexJobApi.Core/settings.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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; }
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,
FlexJobApi.Core/settings.json
@@ -28,6 +28,7 @@
  },
  "AllowedHosts": "*",
  "FriendlyExceptionSettings": {
    "HideErrorCode": true,
    "DefaultErrorCode": "500",
    "DefaultErrorMessage": "服务器异常,请联系管理员"
  },