第八章:实现
我们做到了!现在我们已经知道了关于API需要知道的一切...起码已经达到入门级别了。所以,有了这些必备知识以后,如何好好利用它们呢?本章,我们看看如何将知识转化为可以工作的软件。
从计划到产品
正如我们在本课程中所看到的,一个API交互包括两端。当我们在编码层次讨论这个问题的时候,我们实际要说的是我们需要两个程序来实现API。一个程序遵循了API的规定,我们就说该程序实现了API。在我们的披萨店的例子中,一个可以使用正确的头部和数据格式发送请求到 /orders 终端的客户端就是实现了披萨店API的客户端。
服务器端的程序是发布API的公司的责任。回到第6章,我们看一下设计API背后的流程。有了计划之后,公司下一步要做的就是编写遵循该设计的软件来实现他们的服务器端。最后一步是把程序放到一台服务器上。
公司会和服务器软件一起发布API的文档。文档是解释如何使用API的一个或多个文件——通常是网页或PDF。它包含这样一些信息,像使用哪种认证方案,哪些终端是有效的,代码片段,以及一个可以充当有效的终端的交互式控制台。文档很重要因为它是构建客户端的指引。对API感兴趣的人可以从这里学习API如何工作。
手头有了文档之后,作为客户端有多种方式可以开始使用API。我们现在尝试其中的三种。
HTTP客户端
一种开始使用API的简单方式是使用HTTP客户端,HTTP客户端是一种可以快速构建HTTP请求进行测试的通用程序。你指定URL、头部和主体,然后程序会以适当的格式发送到服务器。这种程序有不同的形式,包括web应用,桌面软件,浏览器扩展以及其他更多形式。
通用HTTP客户端的美妙之处在于你不用写程序就可以使用。通过本课程学到的技能,你就有能力阅读公司的API文档并且确定为了获得想要的数据你需要构造什么样的请求。这种平缓的学习曲线使得在快速和一次性的任务中使用通用客户端非常棒。
然而,这个方法也有不少不利的方面。首先,通常你无法保存你的工作。当你关闭程序之后,你的请求就被忘记了,下次你需要的时候必须再次构建。另一个缺点是你通常无法对返回的数据做更多的工作,只能阅读这些数据。最好的情况下,你也只能把数据保存到一个文件中,然后是否要对它做一些有趣的事情就由你决定了。
写代码
为了真正利用API的力量,你最终需要个性化的软件。这就到了编程上场的时候了。作为一个训练课程,我们不会尝试涉及软件开发的方方面面,但是我们可以给你一些指引,告诉你写一个API客户端需要知道哪些。
首先需要通晓一门编程语言。编程语言有很多,各有自己的优势和劣势。为了简单起见,你最好选择一门解释型的语言(JavaScript,Python,PHP,Ruby或者类似的语言 ),不要选择编译型语言(C或C++)。
如果你不确定应该选择哪门语言,一个很好的缩小选择范围的方法是找一个你想实现的API,看看公司是否提供了客户端库。库是API所有者发布的已经实现了他们的API的客户端的代码。有时候库是可以供个人下载的,而且会打包成一个SDK(软件开发工具包)。使用库可以节省时间,因为你不需要阅读API文档,不需要构造原始的HTTP请求,你可以简单的拷贝粘贴几行代码然后就有了一个可以工作的客户端。
选定了语言之后,你需要确定代码要在哪里运行。如果你是要自动完成你自己的任务,在自己的工作电脑上运行软件是可以接受的。更常见的是,你可能想在更适合充当web服务器的电脑上运行代码。有很多方案可供选择,云服务(比如亚马逊云服务),甚至数据中心里你自己的物理服务器都可以。
第三个重要的决定是确定你要对这些数据做什么。把结果保存到文件中是很简单的,但是如果你想把数据保存到数据库或者发送到另一个程序,事情就变得复杂了。从数据库中取出数据发送给API也会是一个挑战。
这时候我们可以暂停一下,提醒你不要被这些新的信息吓到。当你第一次尝试的时候,不要期望了解如何实现API的一切细节。欣慰的是我们知道有人可以帮我们(开源社区,可雇用的开发者和潜在的项目合作者),而且网上有很多资源可以帮助我们学习。
当你熟悉了这些基础之后,在软件开发这个广阔的领域还有很多话题需要学习。就目前来说,如果你成功的学习了一门编程语言,获取了一个库并且让它运行起来,你就值得庆祝了。你会在充分利用API的路上走得非常好。
给Zapier一个机会
如果编程超出了你目前的技能范围,或者时间不允许,我们知道还有一个使用的工具可以让你轻松拥有和API交互的能力。好吧,你可能已经看到它了:它就是Zapier。我们的开发者平台提供了一种方式让你可以实现一个可以与之交互的API,它会作为Zapier上的一个应用运行。通过点击按钮,填写我们的表单,你就几乎可以实现你希望的任何API。
让开发者平台容易使用的秘密在于我们已经为你完成了很多编程工作。Zapier有合适的代码发送请求,你要做的就是补充细节。想像一下使用这个平台有点类似于使用一个通用的HTTP客户端;你告诉我们一些终端,然后我们完成其他的工作。额外的好处是一旦Zapier和一个API通信之后,对于如何处理返回的数据你有很多选择。而且,如果你被难住了,欢迎你联系我们友善的支持团队,那里的API专家随时准备帮助你。
结论
在本课程中我们已经有了很大的进步。我们从“什么是客户端”这样的问题开始,以如何构建他们的想法结束。及时你决定不尝试实现一个API,我们还是希望当它们出现在谈话中时你会感觉愉快。现在你已经知道什么是API,它能做什么,还有如何使用它们来让你的生意获益。
也许你在经营一家公司,并且看出了为顾客提供一个API的价值。或者你经常做令人讨厌的,花费时间的工作,你希望能够自动完成这些任务。不管情况是怎么样的,我们希望你能发现你获得的知识是有价值的。请将本课程分享给所有你认为会从中获益的人,还有把这句话传播开来,API酷毙了!
译自
(完结)