设计公共API的六个注意事项
?
API by thesmith
俗話說:“好東西就要貢獻(xiàn)出來和大家一起分享”,尤其是在互聯(lián)網(wǎng)業(yè)務(wù)高度發(fā)達(dá)的今天,如果你的創(chuàng)業(yè)公司提供了一項(xiàng)很酷的技術(shù)或者服務(wù),并且其他用戶也非常喜歡該產(chǎn)品,在這種情況下,最好的解決方案是什么呢?把它作為一項(xiàng)服務(wù)——通過RESTful API的形式進(jìn)行開放共享。
嗨,別忘了,如果這樣做,未來它或許會(huì)像Twitter那么有名。當(dāng)然它可能也會(huì)給你帶來些榮譽(yù),或者會(huì)給你帶來不菲的收入,好了,下面讓我們來談?wù)勅绾巫鲆粋€(gè)API呢?
提供一個(gè)基于內(nèi)部架構(gòu)之上的相同接口,打開它,最后在諸如HackerNews、Twitter、和Reddit 這類的技術(shù)論壇上宣布一下,這樣就好了嗎?就這么簡單嗎?
答案當(dāng)然是否定的,如果要提供一個(gè)優(yōu)質(zhì)的公共API接口,你至少需要做到以下六點(diǎn):
- 授權(quán)開發(fā)人員的規(guī)則
- 注意限流控制
- 確定是否要收費(fèi)
- 通常,如果收費(fèi),那么請求越多,錢就越多——你需要準(zhǔn)備一個(gè)計(jì)價(jià)表
- 利用好工具對服務(wù)端進(jìn)行監(jiān)控
- 好的技術(shù)和幫助文檔
- 支持
- 支持
- 支持
..........
以上提到的,都是你必須要提供的。
注意事項(xiàng)
在權(quán)限分配方面,你需要根據(jù)客戶來提供相應(yīng)的API接口。或許有些API需要采取不同的配額,或許限流的多少,這些都需要取決于所需資源和服務(wù)請求數(shù)。
仔細(xì)思考一下,這遠(yuǎn)比討價(jià)還價(jià)來的更劃算一些——只需提供一個(gè)API在外面,如果該API比較受歡迎,它還會(huì)給你的創(chuàng)業(yè)帶來些額外的收入。
幾年前,我曾開放一個(gè)自己做的API,僅僅是一個(gè)REST調(diào)用,我自己都無法保證它是否真正能夠使用,當(dāng)然最后結(jié)果的確是這樣,而且問題很多。
許多人在我毫不知情的情況下使用該API,更不用說監(jiān)控了。直到有一天,我突然發(fā)現(xiàn)服務(wù)器開始不穩(wěn)定并且無論我怎么調(diào)整都沒有恢復(fù),最后關(guān)閉所有應(yīng)用程序,可是服務(wù)器仍然沒有恢復(fù)正常。
于是我想起了那個(gè)開放的API,我發(fā)現(xiàn)它在HackerNews、 Reddit和Twitter上都受到了不同的關(guān)注。當(dāng)我關(guān)閉這個(gè)API入口并且服務(wù)器恢復(fù)正常的時(shí)候,我竟然收到郵件:“Hey,到底怎么了?我一直在使用那個(gè)API,你怎敢把它給關(guān)了呢?”
什么,你都沒有告訴我在使用它,沒禮貌的家伙!
當(dāng)然,這并不是他們的錯(cuò),雖然我留有開發(fā)賬號,限流,使用配額諸如此類的信息在上面,但是開發(fā)人員更多是看到一個(gè)很酷的API,便開始使用它。
如何恰當(dāng)?shù)奶峁┮粋€(gè)API?
Auth, by oztenphoto
正如上面提到的,需要準(zhǔn)備許多東西,如果希望成為你和用戶之間非常愉快的體驗(yàn),尤其是對用戶來說。其中一個(gè)方法是自己動(dòng)手構(gòu)建所有的基礎(chǔ)設(shè)施——但這需要大量的時(shí)間而這并不是很性感的做法。專注于產(chǎn)品核心問題比確保其他的工作更重要。
幸運(yùn)的是,目前已經(jīng)有一些服務(wù)可以讓API使用起來更簡單更方便。
據(jù)我所知道有3scale,Mashape和Mashery。
基本上所有的這些服務(wù)都需要提供諸如:開發(fā)者密鑰,一個(gè)主文檔,執(zhí)行速度限制、確保分配正確以及一系列分析工具等等。你需要提供一個(gè)像樣的API服務(wù)不僅要讓開發(fā)人員滿意,還要讓你的服務(wù)器也滿意才行。
API的主要差異在與如何實(shí)現(xiàn)?當(dāng)3scale在服務(wù)器端不停的問:“嗨,這個(gè)用戶做的怎樣?可以嗎?好嗎?”的時(shí)候,Mashape和Mashery僅提供一種代理工作機(jī)制,對用戶進(jìn)行保持跟蹤并且只有在適當(dāng)?shù)臅r(shí)候才會(huì)發(fā)送請求。
這意味著你必須提供一些Mashape可以理解的標(biāo)準(zhǔn),但很酷的是,他們會(huì)在客戶端根據(jù)相應(yīng)地平臺(tái)自動(dòng)創(chuàng)建一些庫,并且他們是唯一的提供商,這樣就可以采取收費(fèi)措施,所以這樣也就迎合了他們自己的想法,是不是很帥!
接下來,做一款炫的產(chǎn)品,提供API,并且讓它得到關(guān)注吧。
總結(jié)
以上是生活随笔為你收集整理的设计公共API的六个注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个开源工作者对开源与赚钱的一些想法
- 下一篇: swift5以上版本的代理的实现,详细教