You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

131 lines
4.3 KiB

using Apewer;
using System;
using System.Collections.Generic;
using System.Text;
namespace Apewer.Models
{
/// <summary>WebAPI 请求。T 必须带有 System.Serializable 特性。</summary>
[Serializable]
internal sealed class ApiRequest<T>
{
private string _application = null;
private string _function = null;
private string _random = Guid.NewGuid().ToString("n");
private string _ticket = null;
private T _data = default(T);
/// <summary>创建 WebAPI 请求。</summary>
public ApiRequest(string application = null, string function = null, T data = default(T))
{
_application = application;
_function = function;
_data = data;
}
/// <summary>请求的 Application。</summary>
public string Application { get { return _application; } set { _application = value; } }
/// <summary>请求的 Function。</summary>
public string Function { get { return _function; } set { _function = value; } }
/// <summary>请求的 Random,服务端将原样返回。</summary>
public string Ramdom { get { return _random; } set { _random = value; } }
/// <summary>用户 Ticket。</summary>
public string Ticket { get { return _ticket; } set { _ticket = value; } }
/// <summary></summary>
public T Data { get { return _data; } set { _data = value; } }
/// <summary>生成 Json 对象。</summary>
public Json ToJson()
{
var json = Json.NewObject();
json.SetProperty("application", Application);
json.SetProperty("function", Function);
json.SetProperty("random", Ramdom);
json.SetProperty("ticket", Ticket);
json.SetProperty("data", Json.Parse(Data, true));
return json;
}
/// <summary>生成 Json 字符串,可指定 Json 缩进。</summary>
public string ToString(bool indented)
{
return ToJson().ToString(indented);
}
/// <summary>生成 Json 字符串,默认不缩进。</summary>
public override string ToString()
{
return ToJson().ToString(false);
}
}
/// <summary>WebAPI 请求。</summary>
[Serializable]
public sealed class ApiRequest
{
private string _application = null;
private string _function = null;
private string _random = Guid.NewGuid().ToString("n");
private string _ticket = null;
private Json _data = Json.NewObject();
/// <summary>创建 WebAPI 请求。</summary>
public ApiRequest(string application = null, string function = null, object data = null)
{
_application = application;
_function = function;
_data = data == null ? Json.NewObject() : Json.Parse(data);
}
/// <summary>请求的 Application。</summary>
public string Application { get { return _application; } set { _application = value; } }
/// <summary>请求的 Function。</summary>
public string Function { get { return _function; } set { _function = value; } }
/// <summary>请求的 Random,服务端将原样返回。</summary>
public string Ramdom { get { return _random; } set { _random = value; } }
/// <summary>用户 Ticket。</summary>
public string Ticket { get { return _ticket; } set { _ticket = value; } }
/// <summary></summary>
public Json Data { get { return _data; } set { _data = value; } }
/// <summary>生成 Json 对象。</summary>
public Json ToJson()
{
var json = Json.NewObject();
json.SetProperty("application", Application);
json.SetProperty("function", Function);
json.SetProperty("random", Ramdom);
json.SetProperty("ticket", Ticket);
json.SetProperty("data", Data);
return json;
}
/// <summary>生成 Json 字符串,可指定 Json 缩进。</summary>
public string ToString(bool indented)
{
return ToJson().ToString(indented);
}
/// <summary>生成 Json 字符串,默认不缩进。</summary>
public override string ToString()
{
return ToJson().ToString(false);
}
}
}