(原創)多系統間須要對接,我寫了一個接口框架。實用性很是強,寫出來你們交流。須要的能夠直接搬過去用。(第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

 

若是看完,有不明白的能夠評論發給我。

 

真的很好用的。。有須要作接口的同窗。。能夠把整個框架拿去用下。

 

 

提供源碼下載,請點擊:源碼

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息
相關文章