一個超棒的API必定經過一番精心設計,肯花大量時間、站在使用者角度思考問題,這樣使用者使用起來才會事半功倍。那麼,這樣的API需要具備什麼樣的條件呢?
有的放矢
APIs不單單是程式的複製品。它是在我們的核心應用不能解決問題時,擔當資料分析的角色。
如果一味追求“做到所有想做的”,那麼我們的APIs可能會因此變得臃腫而過於複雜。所以好的API必須追求使用者體驗,有切實可行的目標。
追求極簡
如果一款應用的某個功能一時是A一時是B,那麼使用者將會給逼瘋的。Dropbox核心API在簡化這方面就做得不錯。其面向的操作物件是單一的,提供了讀取metadata,讀取/下載資料共三個操作。開發者可以方便地使用它來進行二次開發,做出功能更豐富的應用。
簡易的說明
簡明扼要的文件能讓使用者在短時間內掌握相關的使用方法,縮短開發用時,比方說Github提供的使用說明。這些將能有助於使用者瞭解不同的使用場合,從而更有信心地建立更復雜的應用。
支援OAuth2協議
OAuth2.0是OAuth協議的下一版本,更關注客戶端開發者的簡易性。想象下如果登入程式時,使用者不僅需要使用者名稱/密碼還得需要安全令牌,那麼難道你不想立馬換一個程式嗎?
事實上,目前幾乎所有的API都是這樣做的。因此使用者不得不花費多餘的時間來完成使用者認證。認證是需要的,但使用者可不這樣想。所以不妨參考下OAuth2 規範對此作出改善。
多許可權設定
當使用者被要求對第三方應用進行許可權認證時,考慮最多的一個問題是:這對於我的個人資料有什麼影響?
很多時候,答案是所有許可權,這難免會讓使用者覺得存在風險。GoogleDrive API做得就不錯,它允許開發者對許可權進行管理。這樣做出的程式會讓使用者感覺舒服。
清晰的錯誤或無誤資訊反饋
開發者在使用API過程中可能會出現錯誤,或許是不熟悉,或許是收到了限制;無論是什麼,我們建議,以HTTP錯誤程式碼形式加以說明。
及時的、清晰的反饋有助於使用者明白錯誤的來龍去脈。HTTP錯誤碼一般不會引起歧義並含有清晰的錯誤闡述,所以建議由此入手。
提供變更檢測機制
APIs一般是透過internet進行訪問,如果不對每個呼叫進行檢測,那麼很有可能會加重伺服器和使用者頻寬的負擔。因此使用合理的變更檢測機制(如ETags)進行檢測是很有必要的。
以上所說的或許看起來比較基礎,但是我們應該引起重視;堅持從源頭抓起,從小處著手,才能做出最終讓使用者滿意的作品。
來自:CSDN
評論(1)