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