移動App與基於Web/雲服務發生對話是很常見的事情,最簡單的可能僅僅只是檢索數據,但也可能包含發送數據、用戶受權和管理。而這也就驗證了爲移動應用創建API的重要性,爲此,咱們特總結了10大移動API設計技巧。後端
1. API版本控制緩存
不管什麼時候,開發者要想保證應用正常運轉,對API進行修改老是不可避免的,可能只是對某些功能執行添加、刪除或其餘操做。當遇到這種狀況時,你就不得不暫停API部分的使用,或者容許正在使用的應用對須要被返回的行爲及響應類型有着明確的認知。安全
API就如同你的應用後端與使用它的應用之間存在一個約定。沒有適當的版本控制,一方能夠在另外一方徹底不知曉的狀況下更改約定,那麼,你將處於很是危險的境地。對多個API版本提供支持,可讓那些沒有及時升級應用的用戶繼續使用,而經過App的最新版,可讓你瞭解到最新API的全部變化。服務器
在一款移動App中,API版本控制的重要性顯而易見。若是沒有API的版本控制,那麼在對API進行修改時很容易會形成App中止運行,由此而形成的後果,會讓你哭天搶地追悔莫及。框架
2. 返回數據,不要超出須要工具
在必定程度上,應用與服務器之間發送的數據量將會影響發出請求及其響應的時間。它所形成的影響不只僅只是用戶緊盯加載頁面所花費的時間,還可能包括加載頁面所花費的流量。性能
3. 對發送及接收數據進行壓縮spa
除了上述不要返回數據超出須要以外,經過對發送及接收的數據進行壓縮,可讓你在速度和數據傳送上事半功倍,體驗到更多的好處。.net
4. 堅定刪減多餘的步驟/請求設計
爲了提供單獨的離散步驟而進行API設計的狀況很常見,但這是反映該服務是如何被使用的。所以在大多數狀況下,這些離散步驟反而不是執行移動App最行之有效的方法。
讓咱們來舉一個很是簡單的例子。當用戶在能夠發送請求數據以前已經提供了有效的認證信息並登陸。這可能非常合情合理,咱們能夠將其理解爲兩個單獨的步驟:
但事實上執行此操做並不須要如此反覆的過程。當一個單一的請求發出時,經過認證信息及其相關數據細節,數據及會話令牌在請求過程當中同時被返回。
這樣作的好處是當用戶使用App時,響應速度更快,使用流量也更少。對於開發者而言,這可讓應用代碼更爲簡單,如此一來,既下降了開發成本,也能夠減小維護費用,皆大歡喜,何樂而不爲呢。
5. 合併請求及響應
除了做爲身份驗證或應用啓動過程當中所發出的多重請求,在應用程序的單頁或視圖中,爲了對全部數據進行檢索,都有可能發出多重請求。爲頁面須要的全部數據創建一個單一請求,其速度要比多重請求快得多,而且成本也更低。而速度及成本也正是用戶在使用應用程序時首先考慮的兩大要素。
再者,合併請求及響應也可讓應用代碼更爲簡單,尤爲是關於處理多重請求發出卻沒有成功的狀況。若是將全部請求進行合併,或化整爲零,再多的異常狀況也都變得很是簡單,容易處理。
6. 重中之重:安全性
安全性是一個潛藏着危機可能隨時會迸發的複雜問題,這也使得App對於安全問題及時作出響應難上加難。
所以,要時刻考慮如下內容:
7. 認真計劃並執行你的緩存策略
若是你的應用API返回值不會常常性改變,那必定要實施適當的緩存策略。這可能會涉及到在內存中保存數據,而不是反覆地從硬盤中讀取數據,此外,還會對HTTP部分的緩存性能產生影響。
若是你在服務器上進行緩存,那麼,就要確保當遭遇宕機之時,你能有辦法強行停用服務。
除了服務器端,使用API的應用客戶端也要確保實施適當的緩存策略。若是你在使用最新返回的數據時請求調用,那麼你能夠節省必定的時間及資源。若是你在初始化時避免執行調用操做,則會節省更多的時間和資源。
8. 整合分析
分析是理解一個App如何使用的很是重要的組成部分。在App正常使用期間,對於調用而言,除了發出數據請求以外,作出一個分析服務是很常見的。例如,若是應用嘗試調用服務來刷新頁面顯示數據,而後用戶導航到該頁面,那麼就會在添加一個單獨的追蹤/分析到該導航時產生冗餘。
在最原始時期,使用API能夠對App的使用方法及時間起到一個指示性的做用。與之對比的是豐富的分析工具及框架,它們能夠提供用戶與App交互的很是詳盡的信息。若是目前的你是介於二者之間,那麼,就請認真思考如何進行整合分析,或者僅僅只是爲了追蹤應用使用狀況,而發出一個額外或者多餘的調用。
9. 究竟如何命名?請認真思考!
命名反映了你賦予API的方法、對象、屬性及參數,這也會極大地影響到使用API的人的理解方式。當建立API時,不管用戶首先想到的是何種術語或用語,就其自己而言,它就很是具備吸引力。就如同全部代碼同樣,你使用它的很大一部分緣由在於API如何被理解及其被指望的表現。若是名稱起很差,就會讓人很是困惑。困惑致使錯誤,錯誤致使bug,bug致使延遲及支持成本上升。所以,多花點時間在命名上吧!
10. 不要忘了你的隱私權保護政策及責任
若是你的應用須要捕獲到用戶數據或登錄到服務器並記錄請求,那麼你就必須制定一個隱私權保護政策,來向用戶詳細介紹你是如何使用這些數據信息的。此外,你還必須思考如何存儲及保護這些數據,尤爲是若是它是屬於我的信息,或者與兒童相關,更須要慎重。
(編譯/唐小引 責編/張寧)
文章來源:DZone
本文爲CSDN編譯整理,未經容許不得轉載。如需轉載請聯繫market@csdn.net。