CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架
作者:csframework|C/S框架网  发布日期:2022/02/11 13:51:07

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

CSFramework.WebApi服务端开发框架WebApi后台框架WebApi框架原创软件@csframework.com

1.1 ModelRequest (标准用户请求模型)

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

模型说明:

属 性

说 明

1

secretKey

平台与开发者约定的私钥,不可传参!!!

2

apikey

平台分配给开发者的账号,明文传输,不能为空

3

data

提交的数据,JSON/XML或其它文本数据,可以明文或对称加密,不能为空

4

sign

数据签名,MD5加密。ToMD5(apikey+data+secretKey)不能为空

5

encrypt

Data加密(true/false),预设为不加密。若要加密,双方约定以下加密方式。

平台支持的4种对称加密类型: RijndaelDESTripleDESRSA

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

客户端示范代码1(C#)

//构建<查询采购订单>的请求命令
ModelRequest mr = new ModelRequest();
mr.ApiKey =”5b7184d1-2482-4b7e-85f4-93d86bf1f46e”;
mr.Data =”{Key:PO999222}”; //JSON数据
mr.Sign = CryptoHelper.ToMD5(mr.ApiKey + mr.Data +”z3d85f4865b7184d1bf1”);//Sign数字签名
mr.DataIsEncrypted = false;

//调用PO控制器的Get接口 (独立控制器以及独立接口)
string url=”http://localhost:9988/api/po/get”;
string response=HttpTools.Get(url, JsonConvert.SerializeObject(mr)); //HTTP-GET

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

客户端示范代码2(C#)

//构建<查询采购订单>的请求命令
ModelRequest mr = new ModelRequest();
mr.ApiKey =”5b7184d1-2482-4b7e-85f4-93d86bf1f46e”;
mr.Data =”{Key:PO999222}”; //JSON数据
mr.Sign = CryptoHelper.ToMD5(mr.ApiKey + mr.Data +”z3d85f4865b7184d1bf1”);//Sign数字签名
mr.DataIsEncrypted = false;

//调用Do控制器的postop通用接口,路由必须指定接口编号以及操作类型,id=80100,op=query
string url=”http://localhost:9988/api/do/postop/80100/Query”;
string response=HttpTools.Post(url, JsonConvert.SerializeObject(mr)); //HTTP-POST

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

ModelRequest(C#)

C# 全选
/// <summary>
    /// 用户请求统一接口(CS/APP/微信小程序),支持(apikey+data+secret)数据签名
    /// </summary>
    public class ModelRequest : IUserRequest
    {
        public ModelRequest()
        {
            this.Timestamp = "";
            this.ApiKey = "";
            this.Data = "";            
            this.Sign = "";
            this.DataIsEncrypted = false;
        }

        /// <summary>
        /// 时间戳,格式:yyyyMMddHHmmssfff,最小单位:毫秒
        /// </summary>
        [JsonProperty("ts")]
        public string Timestamp { get; set; }

        /// <summary>
        /// 明文传输key,合作方身份发布给开发者
        /// </summary>
        [JsonProperty("apikey")]
        public string ApiKey { get; set; }

        /// <summary>
        /// 本次操作的数据(JSON或字符串)
        /// </summary>
        [JsonProperty("data")]
        public string Data { get; set; }

        /// <summary>
        /// 数字签名,预设MD5加密=[api_key + data + api_secret(私钥,不传参)+ts时间戳]
        /// </summary>
        [JsonProperty("sign")]
        public string Sign { get; set; }

        /// <summary>
        /// 数据包是否加密
        /// </summary>
        [JsonProperty("encrypt")]
        public bool DataIsEncrypted { get; set; }

    }

1.2 ModelRequestAction (命令操作请求模型)

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

模型说明:

属 性

说 明

1

secretKey

平台与开发者约定的私钥,不可传参!!!

2

apikey

平台分配给开发者的账号,明文传输,不能为空

3

data

提交的数据,JSON/XML或其它文本数据,可以明文或对称加密,不能为空

4

sign

数据签名,MD5加密。ToMD5(apikey+data+secretKey)不能为空

5

act

接口编号,全称Action,传值参考:800003不能为空

6

op

操作名称,全称Operation,传值参考:Add, Delete,Edit,Query或其它自定义名称,不能为空

7

encrypt

Data加密(true/false),预设为不加密。若要加密,双方约定以下加密方式。

平台支持的4种对称加密类型: RijndaelDESTripleDESRSA

8

cdata

客户端信息,全称ClientDataJSON格式或其它文本数据,允许为空

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

客户端示范代码(C#)

//构建用户登录信息
ModelRequestClientData client = new ModelRequestClientData();
client.UserID = “admin”;
client.Token = “7e4c23c0aab0”;

//构建<删除采购订单>的请求命令
ModelRequestAction mr = new ModelRequestAction();
mr.Action = “80100”; //命令编号
mr.Operation = “Delete”;
mr.ApiKey =”5b7184d1-2482-4b7e-85f4-93d86bf1f46e”;
mr.Data =”{Key:PO999222}”; //JSON数据
mr.Sign = CryptoHelper.ToMD5(mr.ApiKey + mr.Data +”z3d85f4865b7184d1bf1”);//Sign数字签名
mr.DataIsEncrypted = false;
mr.ClientData = JsonConvert.SerializeObject(client);

//调用WebApi通用接口
string url=”http://localhost:9988/api/do/post”;
string response=HttpTools.Post(url, JsonConvert.SerializeObject(mr)); //HTTP-POST

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

ModelRequestAction(C#)

C# 全选
/// <summary>
    ///  用户请求统一接口(用户端:CS/APP/微信小程序),支持(apikey+data+secret)数据签名
    /// </summary>
    public class ModelRequestAction : IUserRequestAction
    {
        public ModelRequestAction()
        {
            this.Timestamp = "";
            this.Action = 0;
            this.Operation = "";
            this.ApiKey = "";
            this.Data = "";
            this.DataIsEncrypted = false;
            this.Sign = "";
            this.ClientData = "";
        }

        public ModelRequestAction(IUserRequest request)
        {
            this.Timestamp = request.Timestamp;
            this.ApiKey = request.ApiKey;
            this.Data = request.Data;
            this.Sign = request.Sign;
            this.DataIsEncrypted = request.DataIsEncrypted;
        }

        /// <summary>
        /// 时间戳,格式:yyyyMMddHHmmssfff,最小单位:毫秒
        /// </summary>
        [JsonProperty("ts")]
        public string Timestamp { get; set; }

        /// <summary>
        /// 执行的动作, 如:10901=客户管理, 10902=员工管理
        /// </summary>
        [JsonProperty("act")]
        public int Action { get; set; }

        /// <summary>
        /// 具体操作
        /// </summary>
        [JsonProperty("op")]
        public string Operation { get; set; }

        /// <summary>
        /// 明文传输key,合作方身份发布给开发者
        /// </summary>
        [JsonProperty("apikey")]
        public string ApiKey { get; set; }

        /// <summary>
        /// 数据包(任何数据)
        /// </summary>
        [JsonProperty("data")]
        public string Data { get; set; }

        /// <summary>
        /// 客户端信息(比如登录信息,令牌,)
        /// </summary>
        [JsonProperty("cdata")]
        public string ClientData { get; set; }

        /// <summary>
        /// 数据包是否加密
        /// </summary>
        [JsonProperty("encrypt")]
        public bool DataIsEncrypted { get; set; }

        /// <summary>
        /// 数字签名,MD5=[api_key + data + api_secret(私钥,不传参)]
        /// </summary>
        [JsonProperty("sign")]
        public string Sign { get; set; }
    }

1.3 ModelRequestToken (用户请求+令牌模型)

用户请求统一接口

用户端:Web端,采用Token调用接口方式

C# 全选
/// <summary>
    /// 用户请求统一接口(用户端:Web端,采用Token调用接口方式)
    /// </summary>
    public class ModelRequestToken : IUserRequestToken
    {
        public ModelRequestToken()
        {
            this.Timestamp = "";
            this.Data = "";
            this.UserID = "";
            this.Token = "";
            this.Operation = "";
            this.Action = 0;
        }

        /// <summary>
        /// 时间戳,格式:yyyyMMddHHmmssfff,最小单位:毫秒
        /// </summary>
        [JsonProperty("ts")]
        public string Timestamp { get; set; }

        /// <summary>
        /// 接口编号
        /// </summary>
        [JsonProperty("act")]
        public int Action { get; set; }

        /// <summary>
        /// 操作
        /// </summary>
        [JsonProperty("op")]
        public string Operation { get; set; }

        /// <summary>
        /// 本次操作的数据(JSON或字符串)
        /// </summary>
        [JsonProperty("data")]
        public string Data { get; set; }

        /// <summary>
        /// 令牌
        /// </summary>
        [JsonProperty("token")]
        public string Token { get; set; }

        /// <summary>
        /// 当前用户
        /// </summary>
        [JsonProperty("userid")]
        public string UserID { get; set; }

        /// <summary>
        /// 客户端信息(比如登录信息,令牌,)
        /// </summary>
        [JsonProperty("cdata")]
        public string ClientData { get; set; }
    }

1.4 ModelResponse(标准响应类型)

返回客户端的处理结果信息

C#全选
 /// <summary>
    /// 返回客户端的处理结果信息
    /// </summary>
    public class ModelResponse : IUserResponse
    {
        public ModelResponse()
        {
            this.Code = 0;
            this.Message = "";
            this.Data = "";
        }

        /// <summary>
        /// 信息编号
        /// </summary>
        [JsonProperty("code")]
        public int Code { get; set; }

        /// <summary>
        /// 返回信息
        /// </summary>
        [JsonProperty("msg")]
        public string Message { get; set; }

        /// <summary>
        /// 返回的数据包
        /// </summary>
        [JsonProperty("data")]
        public string Data { get; set; }

        /// <summary>
        /// 数据包是否加密
        /// </summary>
        [JsonProperty("encrypt")]
        public bool DataIsEncrypted { get; set; }
    }

1.5 更多请求模型

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

CSFramework.WebApi后端框架 | 用户请求类型 (User Request)两种参数模型|C/S开发框架

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇