业务是这样:有个手机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
若是看完,有不明白的能够评论发给我。
真的很好用的。。有须要作接口的同窗。。能够把整个框架拿去用下。
提供源码下载,请点击:源码