首页 > 编程语言 >Asp.Net Core 统一Api返回值

Asp.Net Core 统一Api返回值

时间:2024-07-21 16:18:13浏览次数:8  
标签:status Core Asp return ResponseResult Api Result msg data

Asp.Net Core 统一Api返回值

写在开头

在我们在前端调用后端接口时,常常会遇到返回数据不一致的问题,又或者当我们请求接口的时候我们常常需要判断结果,以调用不同的Toast或者Snackbar反馈给操作者,我们需要对接口返回数据进行统一的操作。

代码

首先我们需要一个返回结果类,他应当接收所有类型数据,即泛型

public record ResponseResult<T>
{
    public bool status { get; set; }
    public string? msg { get; set; }
    public T data { get; set; }
    public static  ResponseResult<T> Result(bool _status, T _data, string? _msg = null)
    {
        return new ResponseResult<T> { status = _status, data = _data, msg = _msg };
    }
}

那么现在在api控制器里可能是这样子的:

return ResponseResult<string>.Result(true, "","");

很显然,他看起来太长了,我们使用极为不便。

我们让他简化一点,通过继承ControllerBase

就像下面这样:

public class BaseController : ControllerBase
{
    protected  ResponseResult<T> Result<T>(bool status, T data, string? msg = null)
    {
        return  ResponseResult<T>.Result(status, data, msg);
    }
    protected  ResponseResult<T> ResultOk<T>(T data)
    {
        return  ResponseResult<T>.Result(true, data);
    }
    protected  ResponseResult<T> ResultFail<T>(string msg)
    {
        return  ResponseResult<T>.Result(false, default, msg);
    }
}

在这里我们添加了OkFail并保留了result

以下是相关使用场景:

return ResultOk(data); 
return ResultFail(error); 
return Result(error=="",data,error); 

json结果展示:

{
  "status": true,
  "msg": null,
  "data": [
    {
      "date": "2024-07-22",
      "temperatureC": -2,
      "temperatureF": 29,
      "summary": "Warm"
    },
    {
      "date": "2024-07-23",
      "temperatureC": -19,
      "temperatureF": -2,
      "summary": "Mild"
    },
  ]
}

标签:status,Core,Asp,return,ResponseResult,Api,Result,msg,data
From: https://www.cnblogs.com/ssz0312/p/18314607

相关文章

  • 在.NET Web API设置响应输出Json数据格式常用的两种方式
    前言在ASP.NETCoreWebAPI中设置响应输出Json数据格式常用以下两种方式:可以通过添加System.Text.Json或Newtonsoft.JsonJSON序列化和反序列化库在应用程序中全局设置接口响应的Json数据格式。注意:本文示例使用的是新的MinimalAPI模式。JSON序列化和反序列化库System.Text......
  • C++ 鼠标轨迹API【神诺科技SDK】
    一.鼠标轨迹模拟简介传统的鼠标轨迹模拟依赖于简单的数学模型,如直线或曲线路径。然而,这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现,使得神诺科技 能够通过深度学习技术,学习并模拟更自然的鼠标移动行为。二.鼠标轨迹算法实现AI大模型通过学习大量的人类鼠标操......
  • C++鼠标轨迹API - 神诺科技SDK
    一.鼠标轨迹模拟简介传统的鼠标轨迹模拟依赖于简单的数学模型,如直线或曲线路径。然而,这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现,使得神诺科技 能够通过深度学习技术,学习并模拟更自然的鼠标移动行为。二.鼠标轨迹算法实现AI大模型通过学习大量的人类鼠标操......
  • Python pyTelegramBotAPI:设置不受循环影响的变量
    我想创建一个基本上是布尔值的变量(无论机器人是否工作)。但是,当使用TeleBot.polling()时,脚本开始无限循环,所以如果我在代码开头设置一个变量就像:is_bot_working=True,变量将始终为真,反之亦然。那么,我应该如何设置一个不受循环影响的变量?这就是代码:impor......
  • ES相关性(_score)
    什么是相关性相关度是指两个事物间相互关联的程度,在检索领域特指检索请求与检索结果之间的相关程度。默认情况下,返回结果是按相关性倒序排列的。但什么是相关性?相关性如何计算?每个文档都有相关性评分,用一个正浮点数字段_score来表示。_score的评分越高,相关性越高。查询......
  • FastAPI 依赖
    """依赖:如公用的子函数目的:提高代码的复用率"""0 fromfastapiimportDepends1函数作为依赖 2类作为依赖  3子依赖的创建和调用 4路径参数中使用依赖 5py文件公共依赖 6全局依赖 ......
  • 探索AI驱动的未来:Open API如何赋能企业数字化转型
    在当今这个数据为王、智能引领的时代,人工智能(AI)已不再是遥远的概念,而是深深融入到各行各业,成为推动企业数字化转型的重要引擎。随着技术的不断成熟与开放,OpenAPI(开放应用程序接口)作为一种连接技术与业务的桥梁,正以前所未有的方式赋能企业,加速其智能化进程。本文将深入探讨Open......
  • 深度融合与创新:Open API技术促进AI服务生态构建
    引言在数字化转型的浪潮中,人工智能(AI)已从概念探索走向实际应用,深刻改变着各行各业。OpenAPI(开放应用程序接口)作为连接技术与业务的桥梁,正成为推动AI服务普及和生态构建的关键力量。本文将探讨OpenAPI技术如何通过标准化、易用性和灵活性,加速AI服务的集成与创新,构建一个更加......
  • IDEA的APIPost接口测试插件详解
    APIPOST官方网址一、安装APIPost插件打开IntelliJIDEA:启动您的IntelliJIDEA开发环境。导航到插件设置:在Windows或Linux上,点击File>Settings。在macOS上,点击IntelliJIDEA>Preferences。搜索并安装APIPost插件:在设置窗口中,选择Plugins。点击Marketplace标签......
  • Linkedin 图片/视频 API 上传 403 禁止错误
    我正在调用linkedin图像API来初始化上传。我正在使用insomnia来拨打电话,我拥有未过期的访问令牌(4天前创建)以及以下所有权限/范围(r_1st_connections_size,r_ads,r_ads_reporting,r_basicprofile,r_organization_admin,r_organization_social,rw_ads,rw_organization......