编者按: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发送出去的。
这一点很重要,因为HTTP让我们知道这些企业的基本API是什么。这些是原始、直接的接口,最终定义了我们能够用这些服务所做的一切。
如何设计你的业务API?
现在我们把焦点放到你的业务上。你开始创业的时候要做一堆的事情—要搞清楚创始人是不是适合要追逐的这个市场,要跟客户交谈,要思考你的独特洞察和优势,市场进入策略等等许多事情。
而开发你们的业务API应该是其中一项早期活动之一。
用HTTP协议把它筹划出来。要在你开发出MVP(最小可行产品)之前就先设计好你的API。
设计API可以帮助你理清自己的业务。你将就自己的MVP要做什么不要做什么做出决定。你会优先考虑某些命令而把其他的放一放。通过写一张纸的东西你会认识到自己要做的事情是太多还是不够。
你的基础API会成为与客户以及与团队进行沟通的神奇工具。它会成为你开发MVP的一块垫脚石。
一旦设计好你的API并且对它感到满意之后就要实现它。一个一个来,通过HTTP测试你的原始API。没错,你不需要花哨的UX和好看的app才能开始测试,实现API就能感受一下自己的业务了。
API要跟上业务的发展
你的业务会演变发展,API也一样。要不断更新它,让它变得更好。要给它添砖加瓦,但是不要大手大脚。最好的公司的API都是简单的。
比如Google,接口出奇的简单,但是内部却复杂得难以想象。类似地,乔布斯总是让苹果把界面做得尽量简单,刚好能用就行。苹果产品把难以置信的复杂性和工程灵巧性都隐藏在简单的界面之下了。
随着公司的壮大,不同的业务部分自己的API也会演进。会有公共接口,也会有内部接口。保持接口的简洁明快是非常有帮助的。要一直保持这一点。
随着你的公司的发展,访问它的方式也应该演变。
你会有桌面和移动网站、短信、聊天机器人、iOS和Android app,以及几十种可以在线访问你的业务的方式。所有这些都可以认为是你的API的客户端,你的业务的客户。
我们现在生活在一个云服务和自动化的世界。每一个主流web公司,无论是Google、Amazon还是Facebook,都有自己所提供服务的API。
在未来,每个公司不仅仅可以通过GUI来访问,而且还可以通过编程方式来访问。随着AI和自动化进入我们的世界,越来越多的事务和访问将会通过web服务和API进行。
作为初创企业如何为这个令人兴奋的未来做好准备?只需要开始思考并写下你的API。
你的业务个客户提供的命令是什么?你的API是什么?