最近一段時間的工作,很多都是和各系統間串聯有關的,其間有兩個問題很值關注,如何調用其它系統的接口和如何設計供其它系統調用的接口。
如何調用其它系統的接口?
因為是其它系統的接口,直接調用就行了,沒有什么啊,其實不然,下面是我總結的一些經驗,還是很有用的。
1.不要程序各個地方直接使用其它的系統的接口,最好是寫一個類來封裝其它系統的接口,如果其它系統的接口很多,可以專門建一個項目來管理類,這樣當接口發生變化時(如接口名,接口方式),只需要替換該項目的DLL就可以了,而程序的其它地方都可以不用改,切忌在程序的各個地方直接調用其它系統的接口
2.對于調用會產生數據交易的其它系統接口,一定要寫Log,這對將來數據出錯時,查找問題的根源很必要,特別是對方系統的接口沒有寫log時,一旦出現數據問題,往往會不知從何查起,是我們給的數據有問題,還是對方系統處理我們給的數據有問題?在最近的一個項目中,因為我們產生數據的邏輯很復雜,而對方接口收到我們產生的數據后,也會做一個很復雜數據交易動作,在系統上線初期,出現了很多莫名其秒的數據,而我們正是通過在調用對方接口時的寫log數據,
tb很快查出一些是我們生成的數據有問題,一些是對方處理數據有問題
如何設計接口?
1.一般來說,公布給其它的系統用接口,都是穩定的,較少變動的,所以做足需求,能考慮到多種因素和未來可能發生的因素是前提,這樣能盡可能減少接口的變動
2.接口的使用的類型變量盡量通用,特別是對使用此接口的用戶一無所知情況下,對方可能是JAVA,也可能是VB6,也可能是C#,不要使用某種編程語言的特定類型,我認為比較好的是,參數和返回值都使用string類型,這樣基本上的編程語言都能支持,然后參數和返回都使用XML來定義。
公布接口的時候一同公布接口定義文檔,最好加上XDL文檔。
3.對接口接收過來的數據,最好進行數據效驗,因為你不能保證其它系統會傳給你完全符合標準的數據。
4.對數據校驗不通過的和執行失敗的,最好能有清淅明了的提示返回給調用方
5.對于產生交易數據的接口,最好寫log,記錄調用方傳過來的數據,方便將來查數,不能指望所有的調用方都會寫log