网站备案信息被删除,注册网站费用,查询网站流量的网址,竞价排名营销1.定义统一返回格式
namespace webapi;/// summary
/// 统一数据响应格式
/// /summary
public class ResultsT
{/// summary/// 自定义的响应码#xff0c;可以和http响应码一致#xff0c;也可以不一致/// /summarypublic int Co…1.定义统一返回格式
namespace webapi;/// summary
/// 统一数据响应格式
/// /summary
public class ResultsT
{/// summary/// 自定义的响应码可以和http响应码一致也可以不一致/// /summarypublic int Code { get; set; }/// summary/// 中文消息提示/// /summarypublic string? Msg { get; set; }/// summary/// 是否成功/// /summarypublic bool Success { get; set; }/// summary/// 响应的数据/// /summarypublic T? Data { get; set; }/// summary/// 返回的Token: 如果有值则前端需要此这个值替旧的token值/// /summarypublic string? Token { get; set; }/// summary/// 设置数据的结果/// /summary/// param namedata数据/param/// returns/returnspublic static ResultsT DataResult(T data){return new ResultsT { Code 1, Data data, Msg 请求成功, Success true };}/// summary/// 响应成功的结果/// /summary/// param namemsg/param/// returns/returnspublic static ResultsT SuccessResult(string msg 操作成功){return new ResultsT { Code 1, Data default, Msg msg, Success true };}/// summary/// 响应失败的结果/// /summary/// param namemsg/param/// returns/returnspublic static ResultsT FailResult(string msg 请求失败){return new ResultsT { Code -1, Data default, Msg msg, Success false };}/// summary/// 参数有误/// /summary/// param namemsg/param/// returns/returnspublic static ResultsT InValidParameter(string msg 参数有误){return new ResultsT { Code -1, Data default, Msg msg, Success false };}/// summary/// 获取结果/// /summary/// param namecode/param/// param namemsg/param/// param namedata/param/// param namesuccess/param/// returns/returnspublic static ResultsT GetResult(int code 0, string? msg null, T? data default, bool success true){return new ResultsT { Code code, Data data, Msg msg, Success success };}/// summary/// 设置token结果/// /summary/// param nametoken/param/// returns/returnspublic static ResultsT TokenResult(string token){return new ResultsT { Code 1, Data default, Msg 请求成功, Success true, Token token };}
}2.定义异常过滤器
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Mvc;namespace webapi
{/// summary/// 全局异常过滤器/// /summarypublic class ExceptionFilter : Attribute, IExceptionFilter{private readonly ILoggerExceptionFilter _logger;public ExceptionFilter(ILoggerExceptionFilter logger){_logger logger;}/// summary/// 当发生异常的时候会执行此方法/// /summary/// param namecontext/param/// exception crefNotImplementedException/exceptionpublic void OnException(ExceptionContext context){var values context.RouteData.Values;var controller values[controller];var action values[action];_logger.LogError($控制器{controller},方法{action},详细信息\n);WriteDetailErrorMsg(context.Exception);context.Result new JsonResult(Resultsstring.FailResult(context.Exception.Message));}/// summary/// 递归获取内部异常信息/// /summary/// param nameexception/param/// returns/returnsprivate void WriteDetailErrorMsg(Exception exception){if (exception.InnerException ! null){_logger.LogError(exception.StackTrace \n\n);WriteDetailErrorMsg(exception.InnerException);}else{_logger.LogError(报错 exception.Message);_logger.LogError(堆栈跟踪 exception.StackTrace);}}}
}3.在控制器注入自定义的异常过滤器
builder.Services.AddControllers(opt {opt.Filters.AddExceptionFilter();});4.定义一个错误的api接口 [HttpDelete]public ActionResult Detele(){int i 0;//除数不能为0return Content((1 / i).ToString());}5.访问api接口 错误信息全记录到了并输出到控制台这里可以记录日志到文本文件或数据库。