首页 > 其他分享 >造轮子之统一请求响应格式

造轮子之统一请求响应格式

时间:2023-10-08 11:56:16浏览次数:35  
标签:set 请求 get 响应 基类 轮子 格式 public

在上文中我们实现了统一业务异常处理,在异常响应中我们也使用了统一的响应格式返回给客户端。
接下来我们就讲一下约定统一的氢气响应格式。
在业务开发中,一个规范统一的请求响应格式可以提高我们的前后端开发对接效率,同时清晰的结构提高了可读性。

响应基类

首先定义一个最基础的只提供Code和Message两个属性的基类

public class R
{
    public R()
    {
    }

    public R(string code, string message)
    {
        Code = code;
        Message = message;
    }

    public string Code { get; set; } = "0";
    public string Message { get; set; } = "success";

}

我们约定状态码0则是成功,Message成功默认为success。

泛型响应类

业务请求中我们通常需要返回数据,所以一个统一格式泛型的响应类型就很有必要。我们直接继承R类型,添加一个泛型属性。

public class R<TData> : R
{
    public R(TData data) : base()
    {
        Data = data;
    }

    public TData Data { get; set; }
}

分页泛型响应类和分页请求基类

除了我们普通的数据响应,我们很多情况也需要分页查询响应。那么单独构造一个分页专用泛型的响应类型和分页请求基类就很必要。

public class Page<TData> : R
{
    public Page(List<TData> data, long total) : base()
    {
        Data = data;
        Total = total;
    }

    public List<TData> Data { get; set; }
    public long Total { get; set; }
}

同样是继承R基类,添加一个泛型List属性和分页Total属性。
分页请求基类,我们分页请求大部分是固定的请求参数是页码,请求数据量,以及排序。所以我们把这三个属性抽象出来形成基类。后续复杂的分页业务查询即可继承此基类再额外增加查询条件。

public class PageRequest
{
    public int PageIndex { get; set; } = 1;
    public int PageSize { get; set; } = 10;
    public string OrderBy { get; set; } = "Id";
}

到这我们完成了我们基础的请求响应格式的统一。

欢迎进群催更。

image.png

标签:set,请求,get,响应,基类,轮子,格式,public
From: https://www.cnblogs.com/fanshaoO/p/17748532.html

相关文章

  • 媒体查询+scss 响应式开发
    ```bash$color:#3497ee;@mixinopacity($value){opacity:$value;filter:alpha(opacity=$value*100);}@mixintransition($obj,$time){-webkit-transition:$obj$time;-moz-transition:$obj$time;-ms-transition:$obj$time;trans......
  • centos ntfs Centos系统服务器挂载硬盘(ntfs格式和exfat格式)
    centos ntfsCentos系统服务器挂载硬盘(ntfs格式和exfat格式)ntfs格式硬盘挂载首先安装ntfs-3gyuminstallntfs-3g安装成功后挂载:mount.ntfs-3g/dev/sdhdisk_tmp ......
  • 三维模型3DTile格式轻量化的纹理压缩和质量关系分析
    三维模型3DTile格式轻量化的纹理压缩和质量关系分析 在三维模型的3DTile格式轻量化处理中,纹理压缩是一个重要环节。但是,纹理压缩和模型质量之间存在明显的关系需要权衡。以下是纹理压缩和模型质量关系的详细分析:1、压缩率与纹理质量:一般来说,高度压缩的纹理可以大大减小文件大......
  • YAML标记语言格式备忘
    简介YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC2822)中获得灵感。ClarkEvans在2001年首次发表了这种语言,另外IngydötNet与OrenBen-Kiki也是这语言的共同设计者......
  • 三维模型3DTile格式轻量化的数据压缩与性能平衡关系分析
    三维模型3DTile格式轻量化的数据压缩与性能平衡关系分析 对于三维模型的3DTile格式轻量化处理,数据压缩和性能之间的平衡关系是一个重要的考虑因素。以下是这两者关系的详细分析:1、数据压缩与加载速度:显然,更高级别的压缩可以创造更小的文件大小,从而加快从服务器到客户端的传输......
  • Spring Boot请求响应:实战指南
    今天主要围绕着:请求、响应进行,主要包含两部分:请求响应1.请求我们主要讲解,如何接收页面传递过来的请求数据。1.1Postman之前我们课程中有提到当前最为主流的开发模式:前后端分离网站工作流程介绍在这种模式下,前端技术人员基于"接口文档",开发前端程序;后端技术人员也基于"接口文档",......
  • Spring Boot请求响应:实战指南
    今天主要围绕着:请求、响应进行,主要包含两部分:请求响应1.请求我们主要讲解,如何接收页面传递过来的请求数据。1.1Postman之前我们课程中有提到当前最为主流的开发模式:前后端分离网站工作流程介绍在这种模式下,前端技术人员基于"接口文档",开发前端程序;后端技术人员也基于"接口文档",......
  • multipart/form-data数据格式
    multipart/form-data数据格式(*********************************************multipart/form-data数据格式********************************************#请求头,这个是必须的,需要指定Content-Type为multipart/form-data,指定唯一边界值Content-Ty......
  • 视频直播源码,js判断上传图片格式类型、尺寸大小
    视频直播源码,js判断上传图片格式类型、尺寸大小 /判断图片类型varf=document.getElementById("File1").value;if(f==""){ alert("请上传图片");returnfalse;}else{if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(f)){alert("图片类型必须是.gif,jpeg,jpg,png中的一种")ret......
  • 202310061227-《心得:低版本mysql配置一,些轮子插件》
    1.对于mysql5.7.42,驱动(connector)选择:5.1.46。2.测试链接时:useSSL=true&enabledTLSProtocols=TLSv1.1 驱动链接字符串上要拼接上。3.驱动链接字符串:高版本mysql,意味着高版本connector,选>=8;低版本,选择5.x;               高版本mysql,com.my......