CSFramework.WebApi后端框架 - 用户请求类型 (User Request)参数模型


CSFramework.WebApi后端开发框架-用户请求类型 (User Request)

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

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

 

  模型说明:

属 性

说 明

1

secretKey

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

2

apikey

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

3

data

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

4

sign

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

5

encrypt

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

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

 

  客户端示范代码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

 

  客户端示范代码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

 

  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 (命令操作请求模型)

  模型说明:

属 性

说 明

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格式或其它文本数据,允许为空

 

  客户端示范代码(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

 

  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框架网|原创精神.创造价值.打造精品

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:CSFramework.WebApi后端框架 - 开发者账号(公钥ApiKey与私钥SecretKey)
下一篇:CSFramework.WebApi后端框架提供两种接口调用方式
评论列表

发表评论

评论内容
昵称:
关联文章

CSFramework.WebApi框架 - 用户请求类型User Request参数模型
CSFramework.WebApi用户请求对象模型
Demo调用WebApi接口 - CSFramework.WebApi开发框架
客户使用HTTPGET请求调用WebApi指定FromUri参数对象模型的接口
FileController – 文件管理控制器 - CSFramework.WebApi框架
ImageController – 图片资源控制器 - CSFramework.WebApi框架
SystemController – 系统管理控制器 - CSFramework.WebApi框架
CSFramework.WebApi客户请求流程图
CSFramework.WebApi框架Log日志配置详解
GateController – 系统安全门禁控制器 - CSFramework.WebApi框架
CSFramework.WebAPI 框架系统架构图
软件开发框架-WebApi框架培训大纲(1)
ORM模型介绍(ORM Model)- CSFramework.WebApi服务框架
CSFramework.WebApi开发框架模拟Web用户登录、调用WebApi接口增删改查数据
CSFramework.WebApi服务器框架:客户调用WebApi接口方式(签名+Token令牌)
CSFramework.WebApi框架Token令牌体系架构与应用详解
CSFramework.DbDataUpdate数据模型框架 - 特殊数据类型测试报告
CSFramework.WebApi框架快速搭建服务支持APP、B/S、C/S、微信小程序、公众号、Web客户
CSFramework.WebApi框架 - 系统配置 - app.config
CSFramework.WebApi框架Token令牌工作机制以及Token刷新原理