編寫API應該考慮那些問題

編寫API應該考慮那些問題

安全機制的設計:動態token、https、對稱加密與非對稱加密

接口數據的設計:良好的相應速度、跨平臺性

接口版本的設計:良好的說明文檔、測試程序、接口數據、狀態

接口框架 slim rap文檔

優化接口:restful風格

接口版本的切換(迭代設計)

公共接口的安全設計

 

1、考慮接口的跨平臺性

     編寫的接口要支持Android/iOS ,採用通用的解決方案,通信協議就採用最常用的HTTP協議,如果是即時通信,可以採用開放的XMPP協議,做遊戲的可以採用可靠的TCP協議。

2、良好的響應速度

     接口應該以最快的速度將數據返回給請求者,數據量按需分配,APP客戶端需要什麼數據就返回什麼數據。

3、安全問題

解決安全問題主要是保證API的調用者是經過自己授權的App;

保證數據傳輸的安全。

第一個問題我是採用了動態TOKen的方法,登陸時產生一個token,存入到memcache緩存中,登陸成功後將這個token返回給客戶端,下次用戶請求時攜帶新生成的token等一系列參數到服務器端,在服務器端取出memcache中的token,根據前後端約定的規則生成新的token,然後將這兩個token進行對比,如果相同則證明是授權的APP。

第二個問題的解決方案,主要就是採用 HTTPS了。HTTPS因爲添加了SSL安全協議,自動對請求數據進行了壓縮加密,在一定程序可以防止監聽、防止劫持、防止重發,主要就是防止中間人攻 擊。因此,爲了安全考慮,建議對SSL證書進行強校驗,包括簽名CA是否合法、域名是否匹配、是不是自簽名證書、證書是否過期等。

接口的安全工作不能馬虎,暴力破解啊、SQL Injection啊、僞造請求和數據啊、重複提交啊也要考慮到。

4、良好的接口說明文檔和測試程序

接口文檔要清晰、明瞭,包含多少個接口,每個接口的地址、參數、請求方式、數據交換格式、參數是否必填、編碼格式UTF8,返回值等都要寫清楚。

5、接口數據、狀態

接口必須提供明確的數據狀態信息,不管是成功的,還是失敗的,都必須返回給APP客戶端。

6、接口、參數命名準確

無論是接口還是參數,命名都應該有意義,讓人一目瞭然。接口調試技巧前提必須放在外網上

1)服務端return 調試信息,客戶端調用並顯示結果,

2)在服務端將結果保存成文件在打開文件查看,即日誌型調試(或建臨時表放在數據庫表裏)

考慮突然斷網或接口信息返回超時異常情況的業務處理(先扣金額更新狀態,如有問題自動返回)

7、restful風格

一句話就是:面向資源

使用簡單的url和http請求接口來實現接口

用標準的http協議來完成邏輯操作

更安全、簡潔

REST規則中,有兩個基礎概念:對象、行爲
對象就是我們要操作的對象,例如添加用戶的操作,那麼對象就是user
行爲有4種常用的:查看、創建、編輯、刪除
rest的提出者很巧妙的利用http現有方法來對應這4種行爲:
GET - 查看
POST - 創建
PUT - 編輯
DELETE - 刪除

http://baike.baidu.com/link?url=5wmWvmXTDHFJE54mVXJDdO9IfOaDn4QC92Njo7Jmb8SfVqD6nB_krwOzENqize8UWLv1pzcmP1fEkjmv-vjqKK

http://www.cnblogs.com/jifeng/p/5138887.html

8、口版本的切換

把原來的接口copy一份,然後進行開發,建一個版本的表,前端請求過來的時候攜帶一個版本號的參數

9、公共接口安全的設計

可以通過檢測指定機器ip請求頻率就可以解決,如果發現某個ip請求頻率很高,可以給它彈出一個驗證碼或者直接禁止它的請求。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章