backend/ExamKing.Core/Providers/RESTfulResultProvider.cs
(开头部分) 3KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Threading.Tasks;
using Furion;
using Furion.DataValidation;
using Furion.DependencyInjection;
using Furion.UnifyResult;
using Furion.UnifyResult.Internal;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace ExamKing.Core.Providers;
/// <summary>RESTful 风格返回值</summary>
[SuppressSniffer]
[UnifyModel(typeof(Furion.UnifyResult.RESTfulResult<>))]
public class RESTfulResultProvider : IUnifyResultProvider
{
/// <summary>异常返回值</summary>
/// <param name="context"></param>
/// <param name="metadata"></param>
/// <returns></returns>
public
#nullable disable
IActionResult OnException(ExceptionContext context, ExceptionMetadata metadata) =>
(IActionResult)new JsonResult(
(object)RESTfulResultProvider.RESTfulResult(metadata.StatusCode, errors: metadata.Errors));
/// <summary>成功返回值</summary>
/// <param name="context"></param>
/// <param name="data"></param>
/// <returns></returns>
public IActionResult OnSucceeded(ActionExecutedContext context, object data) =>
(IActionResult)new JsonResult((object)RESTfulResultProvider.RESTfulResult(200, true, data));
/// <summary>验证失败返回值</summary>
/// <param name="context"></param>
/// <param name="metadata"></param>
/// <returns></returns>
public IActionResult OnValidateFailed(
ActionExecutingContext context,
ValidationMetadata metadata)
{
return (IActionResult)new JsonResult(
(object)RESTfulResultProvider.RESTfulResult(400, errors: ((object)metadata.ValidationResult)));
}
/// <summary>特定状态码返回值</summary>
/// <param name="context"></param>
/// <param name="statusCode"></param>
/// <param name="unifyResultSettings"></param>
/// <returns></returns>
public async Task OnResponseStatusCodes(
HttpContext context,
int statusCode,
UnifyResultSettingsOptions unifyResultSettings)
{
UnifyContext.SetResponseStatusCodes(context, statusCode, unifyResultSettings);
switch (statusCode)
{
后面还有 36 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。