首页 asp.Net ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理

ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理

话不多说,直接进入主题。需求:基于Http请求接收Json格式数据,返回Json格式的数据。整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性对token进行验证,并通过时间戳的方式统一处理接收与返回的时

话不多说,直接进入主题。

需求:基于Http请求接收Json格式数据,返回Json格式的数据。

整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性对token进行验证,并通过时间戳的方式统一处理接收与返回的时间格式。

请求Json格式:

“Cmd”: “login””Token”: “””PageNo”: 0″OnePageNum”: 0″Params””UserName”: “emrys””Pwd”:”123456″

返回Json格式

“Cmd”: “login””Result”: 0″ResultNote”: “Success””TotalRecordNum”: 0″Pages”: 0″Detail””UserName”: “lining””Email”:”123456789@qq.com””Age”:”20″

关于代码会免费开源,所以不做详讲,下面主要是简单的应用。

一、新建新接口

  直接新建类名与请求的接口Cmd名称一致,继承BaseAPIService,并在名称后加上APIService,最后实现抽象方法 Process

cmd = pageNo = paramses =

userName = Convert.ToString(Params[

userName2 = GetParams<>( pwd = GetParams<>( age = GetParams<>(

userName3 = GetParams<>(,);
userName4 = GetParams<>(,);

DateTime time = GetParams(

LoginRequestModel login = ConvertToModel

APIJson( { name = }

二、设置验证每个请求的权限

如果需要对每个请求做登录的验证,则只需要在Main类中60行继续实现验证的部分代码即可,如果验证的请求则在类上加上特性APINotNeedToken。

(nt == || (! </span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 根据token获取用户信息 </span>
<span style="color: #0000ff;"&gt;var</span> user =<span style="color: #000000;"&gt; GetUser(req.token) ;
</span><span style="color: #0000ff;"&gt;if</span> (user == <span style="color: #0000ff;"&gt;null</span><span style="color: #000000;"&gt;)
{
</span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt; 判断Token是否失效</span>
<span style="color: #0000ff;"&gt;throw</span> <span style="color: #0000ff;"&gt;new</span> APIException(<span style="color: #800080;"&gt;200</span>,<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;Token失效。</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;);
}
req.APIWorkContext </span>= <span style="color: #0000ff;"&gt;new</span><span style="color: #000000;"&gt; APIWorkContext();
req.APIWorkContext.UserId </span>=<span style="color: #000000;"&gt; Convert.ToInt32(user.user_id);
req.APIWorkContext.UserEmail </span>=<span style="color: #000000;"&gt; user.email;

}</span></pre>

然后可以在每个接口类中的Process方法中获取到UserId,UserEmail等

      
userId = WorkContext.UserId;

三、实现不同的时间格式

如果需要实现不同的时间格式,如不用时间戳,自定义格式为:yyyy-MM-dd HH:mm:ss,继承类DateTimeConverterBase,并实现ReadJson和WriteJson两个方法。并在返回时设置时间格式。

1、在代码Main中的100行中更改代码

        
jsonSettings = JsonSerializerSettings { NullValueHandling =
jsonSettings.Converters.Add(UnixDateTimeConverter为自定义时间类型。

            </strong></span><span style="color: #0000ff;"&gt;return</span> JsonConvert.SerializeObject(res,jsonSettings);</pre>

源码地址:

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/kaifa/asp-net/20200708/5104.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

返回顶部