了解 API 的好处
学习目标
完成本单元后,您将能够:
- 定义抽象。
- 列举使用 API 的好处。
- 解释 HTTP 动词及其用法
当健身俱乐部老板调试健身器材时,她开始想象如果没有标准的电力规范,这个过程会是什么样子。器材并非唯一需要担心的事情。还有像墙壁上的电线、与电线共享的其他设备、发电方式(风电场、核电站、燃煤发电机或太阳能电池板)甚至电源所在地。幸运的是,她不必担心这些细节,只需将器材插到任何插座上就可以了。
API 带来了类似的可预测性和可靠性。它们提供了与特定目的相适应的连通性。与它们集成很容易重复和扩展。而且,在许多情况下,它们涉及价值的互惠交换。健身俱乐部老板可以依赖可靠的电力来给跑步机提供动力,并且服务提供商可以测量相关耗电量并收取费用。
使用 API 的好处
API 可以带来无数机会。以下是软件、客户、普通集成人员、开发人员及其团队可以从使用 API 中获益的方式。
外包
为了实现可重复性,可以轻松地将任何兼容设备(本例中指的是健身器材)的电力需求外包给一个服务,这些设备可以期望获得相同的结果。同样,API 使您能够通过可预测的标准接口将关键数据和功能外包出去。专注于打造出色的应用程序、服务和客户体验,而不是琢磨如何获得常见但细微的信息。
设想一下 Lyft 如何依赖 Google Maps 的标准接口将地图和地理位置导入其移动应用程序。在打车或乘坐豪华轿车时,地图从来都不是客户体验的一部分。但是像 Lyft 这样的网约车服务公司看到了一个通过地图改善客户体验的机会。
由于使用了 Google Maps 的 API,Lyft 无需担心如何将地图集成到其应用程序中。它能够专注于可打造出色共享乘车体验的业务流程。
对于那些渴望成为集成开拓者的人来说,以这种方式使用 API 来打造出色的客户体验应该是自然而然的。您将有责任教会组织中的其他人以这种方式思考。
提高机动性
可以轻松地将耗电设备从一个插座移动到另一个插座。例如,如果没有插头、匹配的插座或规格要求,健身俱乐部老板可能不得不将设备硬连接到建筑物的墙壁上。这将涉及收集所需的工具,暴露所有电线并将它们连接在一起。当然,她还需要了解从墙上接出来的电线的情况。
有了标准接口,移动设备就变得简单了。(考虑升级软件、迁移到新服务器或扩大数据中心的占地面积。)即使接口模式发生了变化——例如从北美到英国旅行时——由于标准定义明确且有文档记录,耗电设备也可以轻松适应。
抽象
谈及健身俱乐部时,电源插座是底层服务(电力)的一个抽象层。您可能会问什么是抽象?它是隐藏另一个系统的工作细节的方法。
只要该服务以标准方式向墙上的插座提供 120 伏交流电,服务提供商就可以在插座后方到电源之间自由更改一切。对耗电设备而言,任何更改都是不透明的。
API 充当提供的数据或功能与完成和运行源头任务所需的逻辑之间的抽象层。换而言之,您的软件只需要知道如何与其他系统连接,并不需要知道其他系统的工作原理。
提高开发人员生产力
程序员编写代码时,很少是从头开始的。API 的设计宗旨是随时随地地使用现有代码库,而非尝试重新创建这些功能。尽管重用现有代码限制了应用程序之间的差异,但对 API 的引用(通常称为“调用”API)可以为程序提供预期的数据或功能。鉴于 API 能够处理常见任务,甚至可以处理不太常见的任务,API 有助于将应用程序的开发时间从几个月或几年缩减到几周。
当开发人员具有这种生产力时,企业可以获得前所未有的灵活性。正如您在针对业务重塑的 API 主导集成中了解到的,多亏了 API,能够以比以往短得多的时间实现新产品和更佳的业务方式。
使用 HTTP 协议访问数据
虽然不存在对开发人员必须如何将其应用程序连接到 API 加以规定的具体规则或法律,但是已经出现了几个标准。例如,当应用程序通过互联网连接到 API 时,大部分 API 提供商通过 HTTP 或超文本传输协议(也称为万维网)建立这些连接。
无论是手机上要调用 API 的应用程序,还是通过 Web 浏览器获取您当前的卡路里计数,或者通过健身器材软件保存锻炼信息,您都依赖于一组被称为动词的特殊 HTTP 命令。
HTTP 动词
|
描述
|
---|---|
POST |
将请求的数据提交给服务器进行处理 |
GET |
从服务器中检索请求的数据 |
PUT |
用在请求中发送的新数据更新和替换现有数据 |
DELETE |
将请求的数据从服务器中删除 |
在大多数情况下,服务提供商为软件提供一个被称为 API 端点的特殊 Web 地址,以便使用 HTTP 动词进行连接。下面是 FitBit 的一个例子。
GET https://api.fitbit.com/1/user/[user-id]/activities/date/[date].json
请注意,FitBit 使用的并非您熟悉的 "www",而是 "api"。在这里,开发人员可以使用 GET 命令返回需在应用程序中显示的数据。在这个端点的情况下,预期响应将包括最后一项活动(跑步),以及用户最近完成的任何健身挑战。
如果连接的跑步机使用该 API,它可以显示对跑步者非常有用的丰富信息!以向 Fitbit API 发出 GET 请求后收到的响应为例。
API
当然,上述响应并不是很直观,不会呈现给跑步机用户。它是根据另一种被称为 JSON(JavaScript 对象表示法)的标准进行格式化的,该标准通常与 HTTP 一同使用。虽然它看起来非常技术化,但有一类新的普通人员集成工具,如 MuleSoft Composer,使非程序员能够轻松处理这些输出。这使得普通集成人员能够设想使用 API 的新方式,并通过构建这些集成来实现其设想。程序员可能会开发一些代码来读取和处理上述响应,而普通集成人员,如一线业务经理或跑步机设计师,则使用点击操作。
跑步机接口
一旦跑步机收到响应,用户就可以看到消耗的总卡路里数,以及他们如何应对最近的健身挑战,等等。
现在,设想自己是跑步机用户界面的设计师。您对不同的用户界面有什么想法吗?也许有一种利用响应中的其他一些数据的用户界面?很可能有。这种对用户界面进行更改的灵活性是 API 提供的抽象化所带来的好处之一。
您知道吗:应用程序不限于一次只使用一个 API!一个应用程序可以调用多个 API 和 API 提供商。这些组合应用有时被称为混搭,就像一个可以包含任何成分的食谱一样,实现混搭的唯一限制因素在于您的想象力。
由于拥有普通集成工具的软件开发人员和非程序员(普通集成人员)可以通过互联网访问数千个 API(根据 ProgrammableWeb.com 的最新统计,共有超过 23,000 个API),网络已经成为一个可编程的平台,其功能与包括 Windows、Mac 和 Linux 在内的可编程平台一样强大,甚至更强大。这就像一个巨大的香料架,随时可供您使用。您越早开始重新思考组织的业务流程和客户体验,用现成的成分实现混搭,您就越早开始利用 API 来改变您的业务!
资源