可能你会很兴奋,觉得开放平台是一个了不起的技术,因为别人也可以使用这个创造无限可能。当 今最流行的开放平台实现方式就是 RESTful API 服务。
而且别忘了,Twitter 就是靠开放平台大放光彩的,所以依靠开放平台,甚至你也可以倒腾出第二 个Twitter。
恩,那么我们肯定要做开放平台API了?
我们会先从现在系统的架构上分出一部分接口出来提供给开发者,然后在各种各样的IT社区,新闻 报道,微博上面号召开发者来开发应用。应该就是这么简单,对吧?
错!
如果你要提供开放API给开发者,那么你需要:
- 认证开发者的途径
- 抑制并控制住开发者的加入以防止大家蜂拥而上
- 决定这些API是否收费
- 如果收费,一般请求越多收费越多,意味你需要加强API调用的限额分配问题
- 一个优秀的监测工具来查看你的服务时刻发生的变化
- 优秀的API文档让开发者快速学习
- 支持
- 支持
- 支持
- ......
上面说到的这些你都能做到吗?
而且别忘了权限问题,也许你 希望对于高级的开发者能调用更多的API。也可能有些API对于某些开 发者有更多的调用配额,在考虑这些问题的时候也别忘了将服务器资源考虑进去。
但如果有人突然提醒你在考虑这些东西的时候是否一开始考虑到收费问题呢?
好吧,希望你的大脑还比较清醒。
几年前我就直接为开发者提供了一个API,而压根没有考虑到上面的问题 -- 仅仅只是一个REST调用 难道也会出问题,等到真实上线后,问题一大堆。
太多人在使用那个API而我却根本没法知道到底谁调用了,我唯一能做的就是看到服务器突然崩掉。。。
后来才想起是因为在Twitter以及Reddit与其他IT社区站点公布了太多的新闻,导致大量的网络请求 。而在我后来为了重新调整而关掉服务器后就开始收到大量愤怒的开发者邮件“喂,我的东西就是 靠你的API混的,你怎么敢随便关掉?”
草泥马,你这样的开发者为什么在使用之前也不跟我说说。
当然,大家都清楚这些开发者是没错的,我应该为每个开发者创建一个账户,分配一定的API调用份 额,那么这些开发者就不会骂我而相反会夸奖这个API很酷。
如何提供一个合适的API
正如前面说到的,你需要准备一大堆的东西。尤其是你的用户。
最土的办法就是这一切都是你自己做,但听起来就已经很吓人了。不过好在是现在已经有了一些服 务商提供了上面所需要的很多东西。
相同点是他们都提供了类似开发者Key,提供浏览开放平台API文档的托管主机,提供限制API调用请 求数量的功能以及精确的针对某个开发者调用权限或请求次数的配额,而且都少不了给你的网络分 析工具。你要做的就是为你的开发者提供API。
不过他们三者还是有很多区别的,尤其是实现方式,3scale运作起来就像在不断在问"这个用户有权 限吗,是现在就执行还是等会等等?"。Mashape与Mashery更像是代理方式运行,然后在他们服务器 上会保存跟踪我们API的记录。