掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
到目前為止,已經(jīng)負責(zé)API接近兩年了,這兩年中發(fā)現(xiàn)現(xiàn)有的API存在的問題越來越多,但很多API一旦發(fā)布后就不再能修改了,即時升級和維護是必須的。一旦API發(fā)生變化,就可能對相關(guān)的調(diào)用者帶來巨大的代價,用戶需要排查所有調(diào)用的代碼,需要調(diào)整所有與之相關(guān)的部分,這些工作對他們來說都是額外的。如果辛辛苦苦完成這些以后,還發(fā)現(xiàn)了相關(guān)的bug,那對用戶的打擊就更大。如果API經(jīng)常發(fā)生變化,用戶就會失去對提供方失去信心,從而也會影響目前的業(yè)務(wù)。

創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元雙塔做網(wǎng)站,已為上家服務(wù),為雙塔各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575
但是我們?yōu)槭裁催€要修改API呢?為了API看起來更加漂亮?為了提供更多功能?為了提供更好的性能?還是僅僅覺得到了改變了時候了?對于用戶來說,他們更愿意使用一個穩(wěn)定但是看起來不那么時髦的API,這并不意味著我們不再改進API了。當(dāng)糟糕的API帶來的維護成本越來越大時,我想就是我們?nèi)ブ貥?gòu)它的時候。
如果可以回頭重新再做一遍,那么我心目中的優(yōu)秀的API應(yīng)該是怎么樣的?
判斷一個API是否優(yōu)秀,并不是簡單地根據(jù)***個版本給出判斷的,而是要看隨著時間的推移,該API是否還能存在,是否仍舊保持得不錯。槽糕的API接口各種各樣,但是好的API接口對于用戶來說必須滿足以下幾個點:
而對于開發(fā)人員來說,要求又是不一樣的:
如何做到以上幾點,以下是一些總結(jié):
1、 面向用例設(shè)計
如果一個API被廣泛使用了,那么就不可能了解所有使用該API的用戶。如果設(shè)計者希望能夠設(shè)計出被廣泛使用的API,那么必須站在用戶的角度來理解如何設(shè)計API庫,以及如何才能設(shè)計出這樣的API庫。
2、 采用良好的設(shè)計思路
在設(shè)計過程中,如果能按照下面的方式來進行設(shè)計,會讓這個API生命更長久
除此之外,下面還列出了一些具體的設(shè)計方法:
3、 避免極端的意見
在設(shè)計API的時候,一定要避免任何極端的意見,尤其是以下幾點:
4、 有效的API評審
API設(shè)計完成以后,需要經(jīng)過周密的設(shè)計評審,評審的重點如下:
5、 提高API的可測試性
API需要是可測試的,測試不應(yīng)依賴實現(xiàn),測試充分的API,尤其是經(jīng)過了嚴格的“兼容性整合測試”的API,更能保證在升級的過程中不出現(xiàn)兼容性問題。兼容性整合測試,是指一組測試用例集合,這組測試用例會站在使用者的立場上使用API。在API升級以后,再檢測這組測試用例是否能完全符合預(yù)期的通過測試,盡可能的發(fā)現(xiàn)兼容性問題。
6、 保證API的向后兼容
對于每一個API的設(shè)計者來說,都渴望做到“向后兼容”,因為不管是現(xiàn)在的API用戶,還是潛在的API用戶,都只信任那些可兼容的API。但向后兼容有多個層次上的意義,而且不同層次的向后兼容,也意味著不同的重要性和復(fù)雜度。
7、 保持逐步改善
過去我們總希望能將現(xiàn)有的“不合理”的設(shè)計完全推翻,然后按照現(xiàn)在“美好”的思路,重新設(shè)計這個API,但是在一段時間以后,又會碰到一樣的狀況,需要再推翻一次。 如果我們沒有有效的逐步改善的辦法,依靠推翻現(xiàn)有設(shè)計,重新設(shè)計API只能讓我們回到起點,然后重現(xiàn)之前的過程。 要有一套行之有效的持續(xù)改善的辦法來在API兼容的同時,改善API使之更好。
8、 把握API的生命周期
每一個API都是有生命周期的,我們需要讓API的生命周期更長,并且在API的生命周期結(jié)束時能讓其平滑的消亡。
開發(fā)API的過程其實就是一個溝通交流的過程。溝通的雙方就是API用戶和API設(shè)計者。
9、 一些具體的實施方案
在一個API不可避免要消亡或者改變的時候,我們應(yīng)該接受并且面對這個事實,下面列舉了幾種保證兼容性的前提下,對API進行調(diào)整的辦法:
一些好的API示例:
原文鏈接:http://www.biaodianfu.com/how-to-design-a-good-api.html

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流