業務是這樣:有個手機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
如果看完,有不明白的可以評論發給我。
真的很好用的。。有需要做接口的同學。。可以把整個框架拿去用下。
提供源碼下載,請點擊:源碼