閱讀457 返回首頁    go 阿裏雲 go 技術社區[雲棲]


接口設計與數據同步解決方案小結

    接口設計方麵: 

    在做項目過程中,對於一個Web平台性的係統來說,往往需要為其他程序開放係統接口,即是以自己做的係統為平台,允許第三方的程序接入。需要和第三方的程序數據打交道,需要第三方程序通過調用web平台接口來傳遞數據。

    這樣對於Web平台來說,開放給第三方程序的接口設計方麵有些值得注意的地方:

      將第三方傳遞過來的數據,最好不要直接與係統本身的數據一起處理。換句話說,最好將第三方傳入的數據放到一張臨時表裏,係統通過定時任務去從臨時表中將傳入數據轉換為係統數據。這樣做的好處在於:

     1.第三方傳入數據不會因為接口調用的失敗或異常而擾亂係統已有的數據;

     2.對於接口調用方來說,減少了接口處理數據的複雜性,可以大大提高接口的調用成功率;

     同步接口裏的方法,建議將添加和修改統一為一個方法,通過傳入係統主鍵來判斷:有記錄則更新,無記錄則添加。


     數據同步方麵:

     通過項目間的係統數據同步實戰,總結出一個比較好的解決方案:

     當兩個係統間要做數據同步時,可以這樣設計:比如係統A和係統B,當數據從係統A到係統B時,

      1.係統A通過定時任務來調用係統B的接口;

      2.係統B接受到係統A的請求後,處理請求,但可以不做任何接口回複;

      3.係統A調用接口後,隻要接口調用不出現異常,即可認為接口調用成功。也行您已經想到:這樣對於係統A來說,接口調用後,無法收到任何回調信息,就無法確認數據是否被同步成功的。請接著看下一步。

      4.係統B在下一定時任務啟動時,將上一次接受到的數據對象返回給係統A;

      5.係統A通過對返回對象信息進行判斷,如果有記錄則更新同步狀態。這樣的前提是,兩個係統要相互保存兩個係統的數據主鍵。

 


最後更新:2017-04-02 17:28:36

  上一篇:go Java-Socket接收服務端數據--中文亂碼
  下一篇:go 獲取Android設備的方向