什么是 API?
坐在办公桌旁用电脑工作的人
应用程序编程接口 (API)

应用程序编程接口 (API) 简化软件开发和创新,使应用程序更便捷安全地交换数据和功能。


什么是应用程序编程接口 (API)?

 应用程序编程接口 (API) 支持企业向外部第三方开发人员、业务合作伙伴和企业内部部门开放其应用程序的数据和功能。 这允许服务和产品相互通信,并通过 已记录的接口使用彼此的数据和功能。 开发人员不需要知道 API 如何实施;只需使用接口与其他产品和服务进行通信。 API 的使用量 在过去十年激增,发展至今,如果没有 API,众多最受欢迎的  Web 应用程序 都无法实现。


API 的工作原理

一个 API 是一组预先定义的规则,用于解释计算机或应用如何相互通信。 API 位于应用和 Web 服务器之间,作为中间层处理系统间的数据传输。

以下是 API 的工作原理:

  1. 客户端应用程序启动 API 调用 以检索信息,也称为 请求。 通过 API 的统一资源标识符 (URI) 从应用程序到 Web 服务器处理该请求,而且其中包括请求谓词、标头,有时还包括请求主体。
  2. 收到有效请求后,API 会调用外部程序或 Web 服务器。
  3. 服务器向 API 发送包含所请求信息的 响应 。
  4. API 将数据传输 到初始请求应用程序。

虽然数据传输会因所使用的  Web 服务 而异,但这种请求和响应过程都通过 API 进行。  用户界面 专为人类使用而设计,API 专为计算机或应用程序使用而设计。

API 在设计过程中融入安全性,因为这种中间件有助于在两个系统之间抽象功能 — API 端点将使用应用程序与提供服务的基础架构分离。 API 调用通常包括授权凭证以降低服务器上的攻击风险,并且 API 网关可限制访问,能够最大程度地减少安全威胁。 此外,在交换期间,HTTP 标头、Cookie 或查询字符串参数为数据提供了额外的安全层。

我们可以想一想由付款处理服务提供的 API。 客户可以在电子商务商店应用程序的前端输入银行卡详细信息。 付款处理器不需要访问用户的银行帐户;API 为该笔交易创建一个唯一的令牌,并将其包含在对服务器的 API 调用中。 这确保拥有更高级别的安全性,可抵御潜在的黑客威胁。


我们为什么需要 API

无论您管理现有工具还是设计新工具,都可以使用 应用程序编程接口 来简化流程。 API 的一些主要优点包括:

  • 增强协作: 企业平均使用近  1,200 个云应用, (链接位于 IBM 外部),其中许多互不相连。 API 支持集成,因此这些平台和应用可以进行无缝通信。 通过这种集成,企业可以实现工作流程自动化并增强工作场所协作。 如果没有 API,许多企业将缺乏连接,并且会受到信息孤岛的影响,导致生产力和绩效降低。
  • 易于创新: API 提供的灵活性使职业能够与新的业务合作伙伴建立联系,为现有市场提供新服务,并最终进入可以带来巨大回报并推动数字化转型的新市场。 例如,Stripe 企业起初只有一个七行代码的 API。 该企业不断与众多全球大型企业开展合作,多元化地提供贷款和“公司卡”,最近的企业估值达到 360 亿美元 (链接位于 IBM 外部)。
  • 数据经济效益: 许多企业选择免费提供 API,至少在最初阶段免费提供,这样便于他们围绕自己的品牌建立开发人员的受众,并与潜在的业务合作伙伴建立关系。 但是,如果 API 提供对有价值的数字资产的访问权限,那么就可以通过出售访问权限获得经济效益(即 API经济)。  AccuWeather (链接位于 IBM 外部)曾推出自助式开发人员门户网站来销售多种API 包时,仅在 10 个月内就吸引了 24,000 名开发人员前来购买,API 密钥销售量达 11,000 个,还同时建立了一个生机勃勃的社区。
  • 安全性提高: 如上所述,API 会在数据和服务器之间创建额外的保护层。 开发人员可以通过使用令牌、签名和传输层安全性协议 (TLS) 加密来进一步增强 API 安全性;通过实施 API 网关来管理和验证流量;还可以通过实践有效的 API 管理 来增强安全性。
常见的 API 示例

由于 API 允许企业开放资源访问,同时可保持安全性和控制力,它们已成为现代业务中的宝贵资产。 以下是您可能会遇到的常见的 应用程序编程接口 :

  • 通用登录: 一个常用的 API 功能是支持人们使用自己的 Facebook、Twitter 或  Google  个人资料登录详细信息登录网站。 这个便捷的功能允许任何网站使用来自最受欢迎的服务之一的 API 来快速验证用户,从而节省为每个网站服务或新会员资格设置新配置文件的时间和工作量。
  • 第三方付款处理: 例如,目前电子商务网站上无处不在的 “PayPal 付费”功能就通过 API 来实现。 这一功能允许人们在线支付产品费用,而不会暴露任何敏感数据或授予未经授权的个人访问权限。
  • 旅游预订比较: 旅游预订网站汇总数千个航班,按照不同日期和目的地提供最经济的选择。 这种服务通过 API 实现,可为应用程序用户提供酒店和航空公司可用性的最新信息。 通过自动交换数据和请求,API 可显著减少检查可用航班或住宿所需的时间和精力。
  • Google 地图: 关于 好的 API ,一个最常提到的示例是 Google 地图 服务。 除了显示静态或交互式地图的核心 API 之外,该应用还利用其他 API 和功能为用户提供方向或兴趣点。 通过地理位置和多个数据图层,您可以在绘制旅行路线或跟踪移动对象(如送货车辆)时与地图 API 进行通信。
  • Twitter: 每篇 推文 包含描述性核心属性,其中有作者、唯一 ID、消息、发布时间和地理位置元数据。 Twitter 向开发人员公开 推文 和回复,并允许开发人员 通过公司的 API  发布推文。

API 类型及 API 协议类型
API 类型

如今,大多数 应用程序编程接口 都是 Web API ,它们通过互联网公开应用程序的数据和功能。 以下是四种主要的 Web API:

  • 开放式 API 是可以通过 HTTP 协议访问的 开源 应用程序编程接口 。 它们也被称为 公共 API,拥有预先定义的 API 端点 以及请求和响应格式。
  • 合作伙伴 API 是向战略业务合作伙伴公开或由战略业务合作伙伴公开的 应用程序编程接口 。 通常,开发人员可以通过 公共 API 开发人员门户网站来自助访问这些 API。 不过,他们仍需要完成载入过程并获取登录凭证才能访问合作伙伴 API。
  • 内部 API 是对外部用户隐藏的 应用程序编程接口 。 这些私有 API 不向企业外部的用户提供访问权限,而是用于提高不同内部开发团队之间的工作效率和沟通能力。
  • 复合 API 包括多个数据或服务 API。 这些服务允许开发人员在一次调用中访问多个端点。 复合 API 在微服务架构中非常实用,在这种架构中,执行单个任务可能需要来自多个来源的信息。
API 协议类型

随着 Web API 的使用量增加,一些协议被开发出来,为用户提供一组预先定义的规则来指定接受的数据类型和命令。 这些 API 协议实际上推动准化的信息交换:

  • SOAP (简单对象访问协议)是使用 XML 构建的 API 协议,用户可通过 SMTP 和 HTTP 发送和接收数据。 使用 SOAP API 可在应用程序或 软件组件 (在不同环境中运行或以不同语言编写)之间轻松共享信息。
  • XML-RPC 是一种使用特定格式的 XML 来传输数据的协议,而 SOAP 使用专有的 XML 格式。 XML-RPC 比 SOAP 的出现时间更早,但它更简单,并且由于使用的带宽最少,是相对轻量级的传输协议。
  • JSON-RPC 与 XML-RPC 协议类似,它们都是远程过程调用 (RPC),但 JSON-RPC 使用 JSON 而不是 XML 格式 来传输数据。 两种协议都很简单。 虽然调用可能包含多个参数,但它们的预期结果只有一个。
  • REST (表征状态转移)是一组  Web API  架构原则,不同于有协议的标准,REST 没有官方标准。 要成为 REST API (也称为 RESTful API),接口必须遵守某些架构约束。 您可以使用 SOAP 协议构建 RESTful API,但这两个标准通常相互竞争。

API、Web Service 与微服务

一个 Web Service 就是一个可以通过 Web 地址访问的软件 组件 。 因此,根据定义, Web Service 需要一个网络。 由于 Web Service 公开应用程序的数据和功能,因此实际上,每个 Web Service 都是一个 API。 然而,并非每个 API都是 Web Service 。

传统上,API 是指连接到可能使用任何低级 编程语言 ( 如 Javascript)创建的应用程序的接口。 现代 API 遵循 REST 原则和 JSON 格式,并且通常为 HTTP 而构建,可以形成开发人员友好型界面,这些界面易于访问并且得到使用 Java、Ruby、 Python 和许多其他语言编写的应用程序的广泛理解。 

在使用 API 时,有两种常见的架构方式 — 面向服务结构 (SOA) 和 微服务 架构。

  • SOA 是一种软件设计模式,使用时,应用程序的功能被拆分并作为网络中的单独服务提供。 SOA 通常使用  Web Service 实现,可通过标准通信协议访问功能构建块。 开发人员可以从头开始构建这些服务,但通常通过将原有系统的功能公开为服务接口来创建。
  • 微服务 架构 也是一种架构模式,它将应用程序划分为更小的独立组件。 将应用程序应用为单独服务的集合可简化测试、维护与扩展。 这种方法在整个 云计算 领域相当常见,能够支持开发人员单独处理一个组件。

虽然 SOA 是应用程序开发中一个重要的演化步骤,但 微服务 架构专为扩展而构建,它为开发人员和企业提供创建、修改、测试和部署应用程序所需的粒度级别的敏捷性和灵活性,其迭代周期更短,云计算资源使用效率更高。

要深入了解这些架构方法之间的联系,请参阅“SOA 与微服务:区别在哪里?


API 和云架构

开发适用于当今世界的 API 至关重要。 云原生应用程序 开发需要通过 API 连接 微服务 应用程序架构来与外部用户(如客户)共享数据。

 微服务 架构中的服务使用类似于 RESTful  API 的通用消息传递框架,促进 操作系统 上的开放式通信,避免因额外的集成层或数据转换事务而造成摩擦。 此外,您可以删除、替换或增强任何服务或功能,都不会对其他服务产生任何影响。 这种轻量级动态化进一步优化云资源,为更好的 API 测试、性能和可扩展性奠定基础。


API 与 IBM Cloud®

API 未来仍会在应用程序现代化 和组织转型中发挥作用,原因在于对更好的客户体验和更多应用程序的需求会影响业务与 IT 运营。

提高自动化程度对于满足这些需求很有帮助。 理想情况下,应该从小型且明显成功的项目开始,然后针对组织的其他过程和其他部分进行扩展和优化。

通过与 IBM 合作,您可以访问 AI 驱动的自动化功能,包括预先构建的工作流程,帮助您通过提高每个流程的智能化程度来加速创新。

采取下一步行动:

  • 探索 IBM API Connect®,它是一个直观且可扩展的 API 设计平台,让您能够在云计算系统创建、安全地公开、管理 API 并通过 API 获利。
  • 通过技能培养创建开发人员社区,在其中发布和共享 API,并在 解决方案开发人员:IBM API Connect 课程的自助服务门户网站与他们互动。
  • API Connect 还可以与 IBM Cloud Pak® for Integration中的其他自动化功能集成,IBM Cloud Pak® for Integration 是一个混合集成解决方案,提供跨多种企业集成样式的自动化闭环生命周期。
  • 执行集成成熟度评估,以评估您的跨关键维度的集成成熟度,并发现您可以采取哪些措施以达到更高的成熟度。
  • 下载我们的 敏捷集成指南,此指南将探讨基于容器且与微服务一致的分散式解决方案集成方法的优点。   

立即开始通过 IBM Cloud 帐户 使用该产品。


相关解决方案

创建新的 API

利用 IBM API Connect 构建应用程序开发人员期望的 API


管理 API

通过全面的 API 生态系统管理实现 API 策略的经济效益


API Connect 测试和监控

升级至自动化、协作性且功能强大的 IBM API Connect Test and Monitor 服务


Watson Language Translator

通过即时翻译文档、应用和网页,扩展至新市场。 创建多语言聊天机器人,根据客户的需要进行沟通。


云集成

通过多云集成连接任何数据


面向业务和 IT 的 SaaS 应用

超过 150 个 SaaS 应用帮助您重塑业务