* 現存的問題
* 統一管理實現方案
* 例子展現
##現存的問題##
* 趨勢要求
>公司逐漸在往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. 這個例子是我在上家公司作的接口管理程序,客戶端的程序員不再來咱們服務端要接口文檔了,並且接口是否健康他們能一目瞭然。
php