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

应用编程接口 (API) 是一组定义、规则和协议,用于实现两个实体之间的通信:用户(人或软件)和信息(在线和 Web应用s提供的数据资源)。

如今,API 构成了现代applications的基础框架,改善了用户体验并增强了商业模式。 有时,API 甚至可以是商业模型本身。

API 如何工作?

API 是应用s的“公众面孔”,揭示其执行的功能和可以提供的信息,并定义正确的请求格式。 当开发人员为应用创建并公开 API 时,它允许其他应用s与其通信。

在许多情况下,API 可以节省开发人员宝贵的时间,因为它们使常用功能随时可用。 开发人员不需要重复现有应用的功能,而是可以通过调用现有应用程序的 API 将功能集成到自己的应用s中。

WhatIsAnAPI-术语表

每个 API 的设计、部署和运行方式取决于其架构风格或协议。

API 架构和协议的类型

API 架构或架构风格是指 API 的高级设计。这包括 API 的结构、组织方式及其请求/响应格式。 API 协议还指定格式,同时另外描述确切的消息。

常见的API架构和协议包括:

  • REST – 也称为 RESTful,这种架构风格基于表述性状态转移的原则。 它使用 HTTP 方法(例如 GET、POST、PUT 和 DELETE)和抽象信息(以资源和资源模型的形式)来创建可扩展、灵活且技术独立的结构。 如今,REST 仍然是最流行的 API 架构。
  • GraphQL – 由 Meta(前身为 Facebook)开发的开源查询语言,GraphQL 架构支持通过一个 API 调用从多个来源获取数据。 由于客户端仅请求必要的数据,因此 GraphQL API 往往比 REST API 更高效(尽管可缓存性较差)。
  • SOAP – 这种架构方法使用简单对象访问协议(SOAP)。 SOAP 消息通常采用 XML 格式,这使得它们比 REST 或 GraphQL 更为庞大。 与 REST API 不同,SOAP API 具有严格的实施指南,定义了 API 协议的结构。
  • WebSocket – 此 API 协议是全双工的,这意味着客户端和服务器可以同时发送和接收消息。 此外,服务器可以发送一条消息,该消息不是对客户端请求的响应,而是由服务器端的事件触发的(例如)。 相比之下,REST API 遵循严格的请求-响应模式。
  • RPC – 通过远程过程调用,开发人员可以使用相同的代码来调用在不同地址空间(通常在远程服务器上)运行的函数作为本地函数,而无需指定远程交互的详细信息。 由于可以使用多种语言,该协议非常灵活,常用于客户端-服务器通信。 RPC 的一个示例是 gRPC(Google 远程过程调用)。
API 目前是如何使用的?

API 是现代软件的关键部分。 如今,组织和企业根据其需求构建或使用多种不同类型的 API。

当今组织中最常见的四种 API 类型是公共 API、私有 API、合作伙伴 API 和第三方 API。

公共 API

公共 API 可供企业外部的用户访问(货币化或免费),并使您能够与第三方开发人员建立合作伙伴关系并扩展您的整个业务生态系统。

由于公共 API 可供第三方开发人员用来构建新产品,因此它们有助于推动创新,并且是帮助建立新合作伙伴关系的重要工具。

私有 API

私有 API 仅可供企业内部团队访问。 它们可以帮助您解锁数据并促进内部协作,或者可能无形中支持您组织面向公众的applications(例如您的网站)。

由于私有 API 仅供内部用户使用,因此组织可以在构建时考虑优化。 私有 API 还使现代applications具有更大的可组合性,使企业能够适应当前的需求。 开发人员在构建微服务时可以轻松集成私有 API,从而减少跨团队的重复工作。

合作伙伴 API

合作伙伴 API 用于直接与业务合作伙伴集成(例如,当航空公司与连锁酒店合作时,您可以同时预订航班和住宿)。 合作伙伴 API 不公开,只有满足两家企业的身份验证(AuthN)和授权(AuthZ)要求的开发人员才能使用。

互操作性加强了与合作伙伴 API 的关系,因为它们打破了孤岛并使不同的组织能够相互通信。

第三方 API

您的组织使用第三方 API 来访问您的applications和服务中缺少的数据或功能。 这些 API 在第三方服务器上运行,通常提供广泛需要的服务(例如许多电子商务网站使用的 Stripe 支付处理 API)。 根据 API,您的组织可以付费或免费使用它们。

由于第三方 API 已由其他开发人员或组织构建,因此其明显优势之一就是节省成本。 此外,第三方 API 是组织更快开发应用程序的关键方式,因为开发人员可以立即使用功能,而不必自己编码。

哪些application语言用于创建 API?

几乎任何现代编程语言都可用于编写 API。编写 API 时,许多开发人员可能会选择使用框架。 框架提供代码库和其他必要的实用程序等构建块,使得使用该语言构建applications更快、更容易。

每种编程语言通常都有一个或多个受开发人员欢迎的框架。 表中列出了几个框架选项(其中许多是开源的)。

 

语言

框架

Java

春天

JavaScript,Node.js

AngularExpress.jsReactVue

PHP

LaravelSlimSymfony

Python

数据库开发

RocketYewActix-Web

红宝石

轨道

选择哪种语言和框架通常取决于项目的需求或开发人员的个人偏好。

API 示例

当今的组织需要与其目标相符的现代API 策略。 API 策略为组织如何设计、开发、管理、治理和保护其 API 制定了计划。

根据Gartner 为软件工程领导者提供的五大 API 课程,有五种最佳实践可以确保您的 API 策略强大:

  • 不要让 API 治理造成瓶颈。 API 治理需要与开发人员敏捷性保持平衡,以继续推动创新。
  • 将 API 视为产品,即使您不打算通过它们获利。 确保每个 API 都有明确的目的和受众,并与业务目标相符。
  • 在黑客之前发现您的 API。 优先考虑可发现性和定期监控有助于防止安全漏洞。
  • 管理 API 的生命周期。 全面的 API 生命周期管理可确保 API 继续以适当的安全性运行。
  • 选择最适合的 API 技术。 适合一个组织的方法可能并不完全适合您的组织,这就是为什么详细考虑您现在和将来的特定 API 需求非常重要。
什么是 API 连接?

尽管 API 最初是作为开发人员的工具,但它们已发展成为增加收入和支持企业敏捷性的战略性商业资产。 API连接是指使用模块化、可重用的API链接云原生环境中的数据和applications,目的是解决可见性、安全性和治理方面的挑战。