编者按:Alex Iskold是Techstars的管理总监。他提出了一个观点,初创企业在进行MVP开发之前应该先考虑好API的设计。因为实际上API代表公司的业务本质,而且那些最好的web公司都有着非常简单优雅的API。思考API实际上就是思考公司的未来。
我最近跟Techstars的一位创始人闲聊,突然就问了她这么一个问题:“你们的API是什么?”
这个问题听起来似乎有点奇怪,其实不然。
每一家初创企业和公司都会有提供给世界的接口。有的接口超级简单,比如Google—你能做的只有搜索;有的复杂一点,比如在Amazon上面买东西—你可以浏览、搜索、添加到购物篮、请求退款等。
即便你不是工程师或者产品经理,想想你们公司给世界提供的API是什么也是很有意义的。把你的公司当作API来考虑有助于阐明你们是做什么的以及为什么要做。
API心态迫使你思维要清晰和极简。
什么是API?
API即应用程序接口(Application Programming Interface)。你可以把API看作是一个接口或者契约,软件组件、web服务或者企业通过它来与世界进行交互。
或者换句话说,API是软件组件、web服务或者公司通信、发送请求以及接收响应的一种协议。
举个例子,假设web页面上有个简单的复选框。那么这个复选框的接口可以让你选中或者取消选中这个复选框。
又比如我们要从Digital Ocean的web服务云加载10台服务器,那么它的API可能是这个样子的:
在后面这个例子里面,launchServers这条命令让命令用户制定要加载服务器的数量。出于灵活性和可重用性的考虑,大多数服务都允许进行这类定制或者参数化。显然加载10服务器和20台服务器要分别使用不同的命令是毫无意义的,因为命令主体是基本一致的。
什么是业务API?
在考虑你的业务API时,应该思考一下哪些是你的业务的关键概念,与之相关的命令又是什么。想想你的业务用户可以做什么事情?下面是一些业务API的简单例子,你应该不会陌生:
google.com/search?term=techstars
amazon.com/browse?category=books
amazon.com/buy?bookId=b&customerId=c
uber.com/orderCar?location=loc&customerId=c
twitter.com/postTweet?text=t&userId=u
facebook.com/friend?userId=u&friendId=f
现代企业都是在云端运营的,我们跟他们的接口是通过HTTP协议。对于大多数最终用户来说这个听起来似乎有违直觉,因为我们看到的都是漂亮的屏幕、友好的app,但是其实双方主要的对接,那些实际的命令,是通过HTTP发送出去的。