開發移動應用時,如何制定API?

比如我有一個圖書管理系統的web版,我想開發一個Android版。Android和伺服器進行互動式要制定API,請問該怎麼制定?謝謝!


1 確定基本項目:

命名規範(容易忽視的項目是版本號,漏掉會帶來升級維護的困難),

是否需要保持狀態(建議不保持),

使用什麼做數據交換(建議 JSON ),

是否需要使用 gzip https 等(建議使用),

認證如何做

等等。

(參考: google RESTful 風格 )

2 確定客戶端和伺服器的交互方式:

是否需要分頁,

是否需要 Lazy loading ,

非同步提交等等。

(很重要,而且和需求緊密相關。技術人員一定要和產品人員溝通好。

這些都可能影響你的 API 設計。)

3 設計功能 API:

根據 1,2 ,你可以明確而且寫出每個畫面對應的所有 API。

4 抽象和合併:

把這些 API 重新抽象,是否需要增加通用 API ?是否可以合併 API ? API 是否需要分層?

有現有系統?那麼如何和現有 Web 服務連接?

(很重要。可以有效降低風險,減少成本)

5 排除負荷風險:

對於可以預測的高負荷 API /大運算量 API 做優化。

(設計和技術兩方面。不要等到測出效率問題再考慮,那時候餘地就有限了。

辦法很多,但是也很容易爆掉預算。事先做好預案和溝通總是沒錯的。)

6 安排優先順序

項目管理的內容,不多說。

7 編寫測試代碼:

編寫好所有的介面,然後準備測試代碼。(參考:google TDD 模式)

建議 github 找一個真正的項目結合上面的內容看。


粒度很重要


要考慮可擴展性、版本迭代、兼容等問題


推薦閱讀:

唱吧已經成為一個「現象級產品」,但是它能持續嗎?能成為顛覆者嗎?
窮遊行程助手和妙計旅行、玩美自由行有什麼區別?
為什麼「發現」成了手機 APP 標配功能?
做 iOS 平台 App 設計,如何能最快速度地在終端上預覽設計圖?
下列應用中,哪個是iOS上最好的在線音樂APP?為什麼?

TAG:移動應用 | Android | 移動開發 |