我最近和Techstars的一位创始人聊天,问了她一个问题:“你们业务的API是什么?”
这个问题听起来很奇怪,其实不然。
每一家创业公司和企业都有提供给外界的接口。有的接口非常简单,比如Google,你能做的就是搜索;有的更复杂,比如亚马逊,你可以浏览、搜索、添加到购物车,下单,申请退款等。
就算你不是软件工程师或者产品经理,思考一下你的公司提供给的是什么样的API也是很有帮助的。把你的业务当作API,你能够更清楚的了解你们在做什么以及为什么要做。
API让你简洁明了的思考公司的未来。
/ 什么是API?/
API即应用程序接口(ApplicationProgramming Interface)。你可以把API看作是一个接口或者合约,软件组件、web服务或者企业的业务通过它来与外界进行交互。
换句话说,API就是软件组件、web服务或者公司业务进行通信、发送请求以及接收回复的一种协议。
举个例子,比如一个简单的复选框,网页上一个简单的UI组件。这个接口让你可以选中或者取消选中复选框:
/check——复选框选中
/uncheck——复选框取消选中
再举一个例子,比如启动10台Digital Ocean网页云服务上的服务器,它的API可能是这样的:
/launchServers?numServers=10 ——开始10台云服务器
在后面这个例子里面,启动服务器这条命令让用户制定启动服务器的具体数量。出于灵活性和可重用性的考虑,大多数服务都允许进行这类定制或者参数化。很显然启动10台服务器和启动20台服务器没有必要使用不同的命令,因为本质上它们是一种命令。
/ 什么是业务API?/
在考虑你的业务API时,思考一下你的业务有哪些关键的概念,与之相关的命令又是什么。想想你业务的用户可以做的是什么?下面是一些业务API的简化的例子,都是大家比较熟悉的方式:
google.com/search?term=itjuzi
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尽量简单优雅,要做减法而不是做加法。
你的基础API会成为与客户以及与团队进行沟通的奇妙工具,也是你开发MVP的一块垫脚石。
当你设计了API,并且准备好去实现它。一步一步来,通过HTTP测试你的API。不需要花哨的UX和漂亮的app就能开始测试,那你可以通过实施你的API来感受你的业务。
/ API随着业务的发展而发展 /
你的业务会逐渐发展变化,API也一样。要不断地更新,让它变得更好。丰富你的API,但是要有节制的做,最好的公司的API都是很简单的。
想想Google,接口如此简单,但是内部却非常的负责。类似地,乔布斯总是让苹果把界面做得尽量简单,能用就行。苹果产品把难以置信的复杂性和工程灵巧性都隐藏在简单的界面之下。
你的业务应该尽可能简单,接口背后的服务尽可能有价值
随着公司的发展,不同业务的API也会发展,你会有公共接口和内部接口。保持接口的简单明了是非常有帮助的。
你自己的公司永远应该是你的API的第一个也是最大的一个客户。
随着你的公司的发展,访问的方式也会变化。
你会有桌面和移动网站、短信、聊天机器人、iOS和安卓app,以及各种在线访问你的业务的方式。所有这些都可以看作是你的API的客户,你的业务的客户。
我们现在生活在一个充满云服务和自动化的世界。每一个主流的互联网公司,无论是Google、Amazon还是Facebook,都有提供服务的API。
在未来,每个公司不仅仅可以通过图形用户界面来访问,还可以通过编程方式来访问。随着AI和自动化的普及,越来越多的业务和访问将会通过网络服务和API进行。
作为创业公司,你也应该为这个令人兴奋的未来做好准备,开始思考并写下你的API。
你的业务为客户提供的命令是什么?你的API是什么?