(原创)面向对象的系统对接接口编写。第4篇
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(原创)面向对象的系统对接接口编写。第4篇相关的知识,希望对你有一定的参考价值。
接上一篇:http://www.cnblogs.com/mazhiyuan/p/5224050.html
这篇开始写Post和Get请求的布局。
我们就以新闻模块来举例吧。其它的模块,比如用户啦,比如音频模块啦,依样画葫芦,都一样的。
先创建一个新闻模块的文件夹。我们叫“News"
然后,如上图1,2,3共三个红圈。创建这3个文件。
我们先讲第2件文件:CommandType.cs
CommandType.cs文件,如上图。他就是一个枚举。里面定义了各种业务逻辑。比如里面有”添加新闻动态“。在这里,我们就以添加新闻动态为例子。
要注意的是:我们给添加新闻动态起的名字叫:AddAppNews ,那么这个名字。必须要有一个相应的.cs文件。不是随便乱写的。
还记得上面有张图,里面有3个红圈吗?其中第1个红圈的名字,就叫AddAppNews.cs。这里要注意名字必须一致。那有人会问了,为什么啊?因为我们这里用到了反射技术。到时候会将这个名字反射为一个真实的.cs文件。。所以必须一样。如果不一样,就反射不到了。
下面讲Index.cs文件。也就红圈中的第3个:
代码细说,里面用到了单例模式。。关于单例模式,我就不解释他的代码了。就这么简单:如上图的第12行到第19行,就是单例模式的所有代码。共7行。
public BaseCommand CreateCommandInstance(CommandType type) 这个方法用到了反射技术。上面的CommandType.cs的枚举命名,就是用在这里了。到时候会在这里反射。
下面讲具体业务:AddAppNews.cs文件:
代码细说下:
public class AddAppNews : Post 添加新闻,我们用的是POS请求,所以要继承POST基类。
public AddAppNews() { } 构造函数必须是public,只有这样,才能反射成功。
public override void Excute() 实现基类的业务方法Excute()
AppNews
appNews = this.Deserialize<AppNews>();
这里用到了基类Post.cs中的protected T
Deserialize<T>()方法。还记得这个方法吗?不记得就回过去看一下。
上面讲的是POST请求的业务处理。下面列一个GET请求的处理。
比如我们要取新闻。我们就讲一下取新闻的GET请求。
代码方法,和Post请求的业务逻辑,比如AddAppNews.cs是类似的。
所不同的是:
string userIdReq = this.Input["UserID"]; 他是用这种方式来处理传递过来的参数。比如get请求时,请求端发了一个UserID的参数。通常请求的url会是这样子的:http://www....com/News.aspx?UserID=xxx
当你愿意看到这里时,后续还有4篇:下面是链接:
(原创)多系统间需要对接,我写了一个接口框架。实用性非常强,写出来大家交流。需要的可以直接搬过去用。(第1篇) http://www.cnblogs.com/mazhiyuan/p/5224046.html
(原创)面向对象的系统对接接口编写。第2篇 http://www.cnblogs.com/mazhiyuan/p/5224049.html
(原创)面向对象的系统对接接口编写。第3篇 http://www.cnblogs.com/mazhiyuan/p/5224050.html
(原创)面向对象的系统对接接口编写。第4篇 http://www.cnblogs.com/mazhiyuan/p/5224054.html
(原创)面向对象的系统对接接口编写。第5篇(完结) http://www.cnblogs.com/mazhiyuan/p/5224056.html
如果看完,有不明白的可以评论发给我。
真的很好用的。。有需要做接口的同学。。可以把整个框架拿去用下。
以上是关于(原创)面向对象的系统对接接口编写。第4篇的主要内容,如果未能解决你的问题,请参考以下文章