接口统一管理设想
*?現存的問題
*?統一管理實現方案
*?例子展示
##現存的問題##
*?趨勢要求
????>公司逐漸在往SOA架構上靠近,各個系統相互協作,接口服務層出不窮,隨之產生的就是,接口安全、協議、文檔、維護、升級、監控等問題。
*?接口書寫不規范,見縫插針
????>現在每個項目里面,都有自己對外提供的接口,接口寫的位置各不一樣,而且注釋、文檔都不具備,所以除了接口人本身,沒有人知道接口在哪里及實現的原理,調用及返回的協議,參數的規范等, 所以就形成了一個單點。
*?接口文檔形同虛設
????>接口文檔管理, 這個事情是所有程序員比較頭疼的,不想寫文檔是人性,所以文檔總是跟不上接口的變化,文檔就成了擺設。
*?接口監控
????>FAT、UAT、BETA、PRO 我們現在的四個環境,但是每個環境,都沒有接口可用率的監控,出問題后,沒法定位是哪個接口的問題,只能在程序里debug,久而久之,對于不重要的環境就置之不理了,這也是大部分公司FAT、UAT環境不好用的原因。
##統一管理實現方案##
*?定義統一接口規范,及安全策略
????1.?HTTP 協議
????2.?HTTP header 緩存策略(對于無線很實用)
????3.?HTTP header 定義接口版本。
????4.?HTTP heaer 緩存策略。
????5.?請求、響應的編碼規范。
????6.?響應的格式統一。
????7.?針對不同接口定義安全策略。(白名單、業務策略、統一簽名)
*?接口書寫規范
????1.?啟一個API_CENTER項目,所有業務及可驗證接口統一寫在該項目中,對于已有的老的接口,可以采用轉發請求的方式接入該項目,從而實現統一位置可見、統一位置可驗證。
????2.?接入方需要接入什么接口服務,不需要聯系接口人,只需要到該項目中查找對應接口即可,而接口人也不需要直接為接入方服務,只要保證在該項目中,接口在不同環境下時可用即可,這樣就大大降低了溝通成本及驗證成本。
*?接口文檔走配置化
????1.?在API_CENTER項目中的接口、或者是有該項目做轉發的接口,需要在該項目中統一的配置文件中,添加自己的配置,配置內容大致為:
????????1.?接口采用的協議。
????????2.?接口請求地址。
????????3.?接口所需參數、參數類型、參數編碼、參數是否可選、默認可用實例。
????????4.?是否需要HTTP緩存。
????????5.?接口返回格式(json、xml、string)盡量統一json
????????6.?接口名稱
????????7.?接口描述
????
????????這樣做的好處是,省去了繁瑣的接口文檔的編寫,而且只要程序可用,文檔永遠都是最新的。
##例子展示##
1.?這個例子是我在上家公司做的接口管理程序,客戶端的程序員再也不來我們服務端要接口文檔了,而且接口是否健康他們能一目了然。
? ??
? ??
? ??
轉載于:https://blog.51cto.com/wufaliang/1543586
總結
- 上一篇: rsync+sersync大数据T级以上
- 下一篇: WEB IM