首页 > 其他分享 >记一个webapi返回值的处理

记一个webapi返回值的处理

时间:2023-06-27 22:33:51浏览次数:36  
标签:webapi 处理 Response json context using 返回值 logger public

using System.Net;
using Microsoft.AspNetCore.Mvc;
using System.Text.Json;

namespace CQRS.WebAPI.Middlewares;

public class GlobalExceptionHandlingMiddleware : IMiddleware
{
    private readonly ILogger<GlobalExceptionHandlingMiddleware> _logger;

    public GlobalExceptionHandlingMiddleware( 
        ILogger<GlobalExceptionHandlingMiddleware> logger)
    {
        _logger = logger;
    }

    public async Task InvokeAsync(HttpContext context, RequestDelegate next)
    {
        try{
            await next(context);
        }
        catch(Exception e)
        {
            _logger.LogError(e.Message);

            ProblemDetails problem = new()
            {
                Status = (int)HttpStatusCode.InternalServerError,
                Type = "Server error",
                Title = "Server error",
                Detail = "An internal server has occurred"
            };
            string json = JsonSerializer.Serialize(problem);

            context.Response.ContentType = "application/json";

            await context.Response.WriteAsync(json);
        }
    }
}

 

标签:webapi,处理,Response,json,context,using,返回值,logger,public
From: https://www.cnblogs.com/Insist-Y/p/17510088.html

相关文章

  • 数字图像处理《11、表示和描述》
     第十一章:表示和描述1、 表示的方法有:边界追踪、链码、多边形近似法等;2、 边界的描绘子有:偏心率、形状数、傅立叶描绘子、统计矩等;3、 区域的描绘子有:圆度率、拓扑描绘子、纹理、不变矩等;4、 使用主分量进行的描述和关系描绘子适用于边界描述和区域描述;5、 最后总结目标......
  • 02-实际处理数据遇到的问题
    /*将某个文件夹中的全部文件,按以下两条规定重命名.一.如果文件名中含有'_'且'_'到'.'之间只有一位数,在这位数前面加'0'二.如果文件名中不含'_'且'.'前面只有一位数,在这位数前面加'0'程序目前存在无法解释的bug,当pAddress的路径和old,相同时文件名无法......
  • Windows系统中的组策略、计算机配置、管理模板、系统凭据分配、加密数据库修正、易受
    介绍与Windows系统中的组策略、计算机配置、管理模板、系统凭据分配、加密数据库修正、易受攻击和批处理相关的信息:Windows组策略(WindowsGroupPolicy):Windows组策略是用于管理Windows操作系统中用户和计算机配置的一种功能。它允许系统管理员通过集中的方式对多台计算机应用相......
  • 如何在.net6webapi中记录每次接口请求的日志
    为什么在软件设计中一定要有日志系统?在软件设计中日志模块是必不可少的一部分,可以帮助开发人员更好的了解程序的运行情况,提高软件的可靠性,安全性和性能,日志通常能帮我们解决如下问题:调试和故障排查:日志可以记录程序运行时的各种信息,包括错误,异常,警告等,方便开发人员在出现问题时......
  • XXLjob分片策略、阻塞处理策略知识汇总
    一、路由策略-分片策略场景描述一般在集群环境下,我们job被部署了多个节点,xxl-job需要做到只要有一个节点去执行job,这时候需要依赖xxl-job的任务路由策略进行分配节点。xxl-job提供的路由策略有:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移......
  • 十八、异常处理(了解)
    十八、异常处理(了解)异常处理:Python程序运行语法出错会有异常抛出不处理异常会导致程序终止异常种类异常种类IndentationError缩进对齐代码块出现问题NameError自定义标识符找不到IndexError下标错误KeyError键名出错AssertionError断言异常Sy......
  • 线程池处理异步任务
    点击查看代码/***异步任务线程池(单例)*用于异步执行任务*/publicclassThreadPoolSingleton{privatestaticfinalAtomicReference<ThreadPoolSingleton>INSTANCE=newAtomicReference<>();privatefinalExecutorServiceexecutor;privateTh......
  • C#实现控制射频仪表E5071C,采集数据,处理数据,保存数据
    usingSystem;usingSystem.IO;usingSystem.Text;usingIvi.Visa.Interop;usingNationalInstruments.Visa;namespaceE5071C_Demo{classProgram{staticvoidMain(string[]args){//连接仪表ResourceManagerrm......
  • DataNode的FullGC的处理过程
    背景:因公司每天中午11:08~11:40之间,DataNode所有的节点都会挂一会,主要是因为任务太过于集中的原因,在加上公司的HDFS的数据存储已经快达到了2P,DataNode的GC参数还是原来的4G,需要针对问题进行处理处理方案:先查看DataNode的GC情况jpsjstat-gcutil55336查看FGC有1574次1.先把集群......
  • 1.中断处理
    ##项目目标是通过中断控制GPIO,实现rgb灯的亮灭; 中断基本概念:CPU在正常执行程序的过程中,遇到内部/外部的紧急事件需要处理,暂时中止当前程序执行,转而去处理紧急事件,处理完成后再返回被打断的程序继续执行中断能提高CPU效率(针对不频繁事件),能针对突发事件做出实时处理,实......