.net core 工具类库 UtilsSharp.Standard

news/2024/5/19 21:30:35 标签: .netcore, c#, 开发语言


UtilsSharp.Standard工具类库 详细文档:UtilsSharp框架文档

UtilsSharp.Standard工具类库简介:该工具类是基于UtilsSharp.Standard2.0封装的,里面包括:小驼峰法命名出参规范类、出入参规范类、阿里oss帮助类、钉钉机器人帮助类、图片帮助类、文件帮助类、下载类、随机数帮助类、对象映射帮助类、字符串帮助类、验证码生成、时间帮助类、中国日历帮助类、任务下发帮助类等,后面将持续更新中…

一、命名规范

1、小驼峰:

除第一个单词之外,其他单词首字母大写

例如: int myStudentCount

用于:变量名

2、大驼峰:

相比小驼峰法,大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了

例如: public class DataBaseUser

用于:命名空间、类名、方法名、属性名

3、方法命名规范

获取单个对象的方法用Get作为前缀,如:GetRecord

获取多个对象的方法用Get作为前缀,最后面加s,如:GetRecords

分页搜索的方法用Search作为前缀,如:SearchRecord

添加的方法用Add作为前缀,如:AddRecord

修改的方法用Modify作为前缀,如:ModifyRecord

(添加+修改)的方法用Save作为前缀,如:SaveRecord

删除的方法用Delete作为前缀,如:DeleteRecord

清空的方法用Clear作为前缀,如:ClearRecord

判断类的方法用Is作为前缀,如:IsRegister,IsExist

4、变量命名规范

变量取名应见名识意,尽量用英文单词,而不是缩写

例如:pageIndex, pageSize

5、入参、出参类名统一,入参+Request,出参+Response

例如:

c#">/// <summary>
/// 会员登录请求参数
/// </summary>
public class LoginRequest
{
   /// <summary>
   /// 用户名
   /// </summary>
   public string UserName { set; get; }
   /// <summary>
   /// 密码
   /// </summary>
   public string UserPassword { set; get; }

}
/// <summary>
/// 会员登录返回参数
/// </summary>
public class LoginResponse
{
   /// <summary>
   /// 访问口令
   /// </summary>
   public string Token { set; get; }

   /// <summary>
   /// 用户名
   /// </summary>
   public string UserName { set; get; }
}

二、请求接口返回格式:BaseResut<T>

1、请求方法例子:
c#">/// <summary>
/// 登入
/// </summary>
/// <param name="request">登入参数</param>
/// <returns></returns>
public BaseResult<LoginResponse> Login(LoginRequest request)
{
   var result = new BaseResult<LoginResponse>();
   try
   {
      if (string.IsNullOrEmpty(request.UserName))
      {
          result.SetError("用户名不能为空", BaseStateCode.参数不能为空);
          return result;
       }
       if (string.IsNullOrEmpty(request.UserPassword))
       {
          result.SetError("密码不能为空", BaseStateCode.参数不能为空);
          return result;
       }
       /*…这边省略登入业务代码…*/
       var response = new LoginResponse {UserName = request.UserName, Token = Guid.NewGuid().ToString("N")};
       result.SetOkResult(response,"登入成功");
       return result;
    }
    catch (Exception ex)
    {
      var errorCode = Guid.NewGuid().ToString("N");
      //这边用errorCode作为日志主键,把错误信息写入到日志
      var errorMessage = errorCode.ToMsgException();
      result.SetError(errorMessage, BaseStateCode.TryCatch异常错误);
      return result;
    }
}
2、请求返回的成功结构:
{
    "result": { //result 是个泛型 
        "token": "ecbcc910fab0497c933d69906188ad0e",
        "userName": "xxx"
    },
    "code": 200,//成功码 错误码 可以参考文章末尾
    "msg": "登入成功" //提示信息
}

三、请求列表接口基础出入参,入参:BasePage,有排序的入参:BaseSortPage,出参:BasePagedResult<T>

1、分页请求的基础参数
{
 keyword:"", //关键词搜索
 pageIndex:1, //当前页码
 pageSize:10, //分页数量
}
2、请求方法例子:
c#">/// <summary>
/// 分页搜索
/// </summary>
/// <param name="request">登入参数</param>
/// <returns></returns>
public BasePagedResult<LoginResponse> Search(BaseSortPage request)
{
   var result = new BasePagedResult<LoginResponse>();
   try
   {
      var response = new BasePagedInfoResult<LoginResponse>()
      {
          PageIndex = request.PageIndex,
          PageSize = request.PageSize
      };
      if (string.IsNullOrEmpty(request.Keyword))
      {
          result.SetError("搜索关键词不能为空!",BaseStateCode.参数不能为空);
          return result;
      }
          /*…这边省略查询业务代码…*/
          /*…以下模拟从数据库获取数据…*/
      response.List = new List<LoginResponse>
      {
         new LoginResponse() {Token = Guid.NewGuid().ToString(), UserName = "xxx1"},
         new LoginResponse() {Token = Guid.NewGuid().ToString(), UserName = "xxx2"},
         new LoginResponse() {Token = Guid.NewGuid().ToString(), UserName = "xxx3"}
      };
      response.PageIndex = request.PageIndex;
      response.PageSize = request.PageSize;
      response.TotalCount = 100;
      response.Params = request;
      result.SetOkResult(response);
      return result;
    }
    catch (Exception ex)
    {
      var errorCode = Guid.NewGuid().ToString("N");
      //这边用errorCode作为日志主键,把错误信息写入到日志
      var errorMessage = errorCode.ToMsgException();
      result.SetError(errorMessage, BaseStateCode.TryCatch异常错误);
      return result;
    }
}
3、分页请求返回的成功结构:
{
    "result": {
        "pageIndex": 1,//当前页码
        "pageSize": 10,//分页数量
        "totalCount": 100,//总条数
        "totalPages": 10,//总页数 
        "orderBy": "createTime:desc",//排序
        "hasPreviousPage": false,//是否有上一页
        "hasNextPage": true,//是否有下一页
        "list": [    //返回的列表数据
            {
                "token": "411349e5-d345-4bfa-8022-d109fc483aeb",
                "userName": "xxx1"
            },
            {
                "token": "3a72e1d0-73dc-48d8-972b-7dde831101c3",
                "userName": "xxx2"
            },
            {
                "token": "9d690366-cc61-4ca5-9f08-f23972ebe27a",
                "userName": "xxx3"
            }
        ],
        "params": {  //入参 object类型
            "sortField": "createTime",//排序字段
            "sortType": "desc",//asc 升序  desc降序
            "pageIndex": 1,
            "pageSize": 10,
            "keyword": "连衣裙"
        }
    },
    "code": 200,
    "msg": "请求成功"
}

四、错误码

返回码标识说明
200success请求成功
999defaultTips业务提示
2000apiError接口异常
3000networkError网络异常
4000notLogin未登录
4010authExpire授权到期
5000exception异常错误
6000dataNotFound数据找不到
6010dataNotValid数据验证不通过
7000businessError默认业务性异常
8000dbError数据库异常
9000SystemError系统错误

以上给到的错误码是基础错误码,其他错误码可以根据自己业务新增,新增的业务错误码遵循要在基础错误码范围内:

比如:

某个接口异常的错误码可以是:2000-2999之间的数字;

网络类的错误码可以是:3000-3999之间的数字;

授权类的错误码可以是:4000-4999之间的数字;

数据验证类的错误码可以是:6000-6999之间的数字;

系统类的错误码可以是:9000-9999之间的数字等。

UtilsSharp.Standard工具类库 详细文档:UtilsSharp框架文档


http://www.niftyadmin.cn/n/127735.html

相关文章

Locally Differentially Private Protocols for Frequency Estimation论文笔记

文章目录1.Pure LDP Protocol1.1相关背景1.2支持集1.3相关定义2.Basic one-time RAPPOR3.Rappor4.Direct Encoding4.1GRR4.2RR5.Unary Encoding5.1Symmetric Unary Encoding5.1Optimized Unary Encoding6.Local Hashing6.1Binary Local Hashing6.2Local Hashing6.3Optimal Loca…

黑马Linux笔记01【安装VMware Workstation、安装CentOS7、远程连接Linux系统、Win10配置WSL(Ubuntu)环境】

资源 视频地址&#xff1a;黑马-新版Linux快速入门到精通资源下载&#xff1a;https://pan.baidu.com/s/1zExrsk09QVm3mpqaPTqe_g?pwd6666&#xff0c;提取码&#xff1a;6666笔记 黑马Linux笔记01【安装VMware Workstation、安装CentOS7、远程连接Linux系统、Win10配置WSL(Ub…

【Shader】【知识点查找】

这里写目录标题TagSubShaderd 标签QueueRenderTypelgnoreProjectorPass标签LightModeRenderSetupCullZTestZWriteBlendLOD&#xff1a;Level of Detail更新记录Tag SubShaderd 标签 Queue 控制渲染顺序&#xff0c;指定该物体属于哪 个渲染队列&#xff0c;通Queue 过这种方式…

使用Advanced Installer打包程序及运行环境

Advanced Installer 工具版本&#xff1a;20.1.1 设置产品信息 选中右侧【Product Details】输入产品信息 设置文件和文件夹 添加使用VS发布之后的程序文件夹 设置文件夹刷新 选中文件夹&#xff0c;右键选择属性&#xff0c;选中Synchronize标签。启用“Synchronize conten…

英文论文写作常用例句整理汇总(持续更新)

ContentsGeneral introductionProblem definitionGaps in literatureProblems solutionStudy motivationAims & objectivesSignificance and advantages of your work参考资料General introduction Research on __ has a long tradition For decades, one of the most pop…

如何查找你的IP地址?通过IP地址能直接定位到你家!

我们ip地址分为A、B、C、D、E共5类&#xff0c;每一类地址范围不同&#xff0c;从A到Eip地址范围依次递减&#xff0c;其中哦&#xff0c;D和E是保留地址&#xff0c;我们用不了。A、B、C3类地址很多都被美国这样的西方国家分走了&#xff0c;而留给我们的就剩有限的地址了&…

物理层概述(二)重点

目录前言编码与调制&#xff08;1&#xff09;基带信号与宽带信号编码与调制编码与调制&#xff08;2&#xff09;数字数据编码为数字信号非归零编码【NRZ】曼斯特编码差分曼彻斯特编码数字数据调制为模拟信号模拟数据如何编码为数字信号模拟数据调制为模拟信号物理层传输介质导…

浅谈CSRF跨域读取型漏洞之JSONP劫持

目录 前提知识 CSRF JSONP jsonp漏洞 原理 过程 复现 漏洞挖掘思路 漏洞防御 前提知识 CSRF 提起CSRF&#xff0c;可能很多人都会想到修改个人资料、授权登陆等攻击场景&#xff0c;可以发现这两个场景都是写入型的CSRF漏洞&#xff0c;通常会忽视更常见的读取型的CS…