• (原创)面向对象的系统对接接口编写。第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

    如果看完,有不明白的可以评论发给我。

    真的很好用的。。有需要做接口的同学。。可以把整个框架拿去用下。

    提供源码下载,请点击:源码

  • 相关阅读:
    储备学习drf的基本认知
    VUE基础一
    Django之outh模块
    MySQL模糊查询效率
    MySQL中位数计算方法
    1292
    正则表达式【UltraEdit / MySQL / 数据清洗】
    grep awk sed echo
    mysqldump备份工具使用
    shell的MySQL命令
  • 原文地址:https://www.cnblogs.com/mazhiyuan/p/5224054.html
Copyright © 2020-2023  润新知