(原创)多系统间需要对接,我写了一个接口框架。实用性非常强,写出来大家交流。需要的可以直接搬过去用。(第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
如果看完,有不明白的可以评论发给我。
真的很好用的。。有需要做接口的同学。。可以把整个框架拿去用下。
提供源码下载,请点击:源码