zoukankan      html  css  js  c++  java
  • (原创)多系统间需要对接,我写了一个接口框架。实用性非常强,写出来大家交流。需要的可以直接搬过去用。(第1篇)

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

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

    个人建议有需要的同学可以直接拿去用到项目中。。我会一步步讲他的制作方法。

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

    上图是网站。

    图片
    上图是类库

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

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

    图片
    图片

    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; }    是一个返回消息码的属性访问器。当调用接口时,不管成功与否,都要返回消息码给对方。


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


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


    string Output{ get; set; }     输出结果。。我们保存的是object类型的OutObject对象,要想将这个object直接返回给调用方是不行的。因为调用方,一般会要求得到的是 json格式,或者得到xml格式。。那么这个Output的作用就是将object值转换成string类型的json字符串或者xml字符串,输出给 调用方。


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


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

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

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

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

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

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

  • 相关阅读:
    Spring 定时任务
    JSOUP 爬虫
    Google 翻译(中英,英中)
    linux mysql 卸载与安装及配置命令
    2.logback+slf4j+janino 配置项目的日志输出
    DW3 消息推送
    JQuery 常用知识
    intellij idea 2016.3.5 控制台取消行数限制
    1.搭建Maven 多模块应用 --Intellij IDEA 2016.3.5
    JSON 解析工具的封装(Java)
  • 原文地址:https://www.cnblogs.com/mazhiyuan/p/5224046.html
Copyright © 2011-2022 走看看