(原创)多系统间须要对接,我写了一个接口框架。实用性很是强,写出来你们交流。须要的能够直接搬过去用。(第1篇) (原创)面向对象的系统对接接口编写。第2篇 (原创)面向对象的系统对接接口编写。第3篇

业务是这样:有个手机app,在ios或者android上开发的,他须要访问服务器数据。我在服务器上,作了一个接口,专门开放一些数据给app去用。

我写的接口优点:我写的这个接口,所有是面向对象结构,代码简单而很是好用,极易扩展。可读性很强,容错性高。

我的建议有须要的同窗能够直接拿去用到项目中。。我会一步步讲他的制做方法。

第1步,建立一个工程,在工程中,建立一个网站,以及一个业务操做类库。以下图:html

上图是网站。

图片
上图是类库

第2步,建立几个根类.cs文件。
图片
如上图,建立:
Post.cs文件:用于接收Post请求
Get.cs文件:用于接收Get请求
Factory.cs文件:模块工厂。好比你的手机App有新闻模块,有语音模块,有各类模块。全部模块都从这个工厂获取实例对象。
Code.cs文件:返回给调用接口的人,一些约定好的提示码以及信息。
BaseCommand.cs文件:请求的基类。。无论是Post仍是Get请求,都继承这个基类。

第3步。写基础文件的代码。一个一个文件的贴图细说。
先来:BaseCommand.cs文件:

图片
图片android

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
using ZGMZ.Common;
namespace ZGMZ.UIL.App
{
    /// <summary>
    /// 基类
    /// </summary>
    public abstract class BaseCommand
    {
        internal BaseCommand() { }
        /// <summary>
        /// 消息结果
        /// </summary>
        internal Code Code { get; set; }
        /// <summary>
        /// 返回的消息详细说明
        /// </summary>
        protected string ErrorMessage { get; set; }
        /// <summary>
        /// 要进行序列化的对象
        /// </summary>
        protected object OutObject { get; set; }
        /// <summary>
        /// 输出参数
        /// </summary>
        public string Output
        {
            get
            {
                string result = "\"\"";
                if (this.OutObject != null)
                {
                    result = this.Serialize(this.OutObject);
                }
                //输出结果
                string output = "{\"CodeId\":\"" + this.Code.CodeId + "\",\"CodeDescription\":\"" + this.Code.Description + "\",\"ErrorMessage\":\"" + HtmlHelper.RemoveQuotes(this.ErrorMessage) + "\",\"Result\":" + result + "}";
                return output;
            }
        }
        /// <summary>
        /// 序列化
        /// </summary>
        /// <param name="queryParameters"></param>
        /// <returns></returns>
        private string Serialize(object o)
        {
            JavaScriptSerializer jss = new JavaScriptSerializer();
            string data = jss.Serialize(o);
            return data;
        }
        /// <summary>
        /// 执行操做
        /// </summary>
        public abstract void Excute();
    }
}

 

代码解说:
这是一个抽象基类。
Code Code { get; set; }    是一个返回消息码的属性访问器。当调用接口时,无论成功与否,都要返回消息码给对方。ios


string ErrorMessage { get; set; }    是消息码的说明。。好比消息码是100。他的对应说明是“成功”。json


object OutObject { get; set; }    当别人调用了接口后,要返回一个结果给对方。在返回结果前,咱们要先存储这个对象。。由于咱们不知道要返回什么类型的东西给调用端,因此,咱们用object作为类型。先将要返回的对象保存起来。服务器


string Output{ get; set; }     输出结果。。咱们保存的是object类型的OutObject对象,要想将这个object直接返回给调用方是不行的。由于调用方,通常会要求获得的是 json格式,或者获得xml格式。。那么这个Output的做用就是将object值转换成string类型的json字符串或者xml字符串,输出给 调用方。app


string Serialize(object o)    序列化。将object OutObject对象,经过这个序列化的方法,能够变成string类型的json字符串。最后使用Output属性,能够输出给调用方。框架


abstract void Excute()    这是一个抽象方法。好比app请求服务器时,确定是要实现一个功能的。这个Excute就是实现这个业务逻辑。post

 

 

当你愿意看到这里时,后续还有4篇:下面是连接:网站

(原创)面向对象的系统对接接口编写。第2篇 http://www.cnblogs.com/mazhiyuan/p/5224049.htmlthis

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

 

若是看完,有不明白的能够评论发给我。

 

真的很好用的。。有须要作接口的同窗。。能够把整个框架拿去用下。

 

 

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

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息
相关文章