什么是应用编程接口 (API)?
了解应用编程接口 (API) 的定义、类型、主要用例和优势。
default
{}
default
{}
primary
default
{}
secondary
什么是 API?
API,即应用编程接口,是指在构建软件应用和与软件应用交互时使用的一系列规则和协议。
API 充当着中介的角色,让两个不同的应用可以相互通信。这种通信包括通过 API 发送和接收数据,这意味着不同软件组件可以相互交互和执行任务。
通过清晰定义一系列方法和工具,API 确保不同软件组件能够可靠地交互,而不受其底层架构或技术的影响。正因如此,API 在互联网的发展中发挥着至关重要的作用,支撑起了云服务、移动应用开发、电商平台与应用的蓬勃发展,以及基于 Web 的服务的集成。
API 的功能:
- 连接应用:API 支持应用交换数据、共享功能并进行交互。
- 隐藏复杂性:用户无需了解软件的内部工作原理即可使用。
- 规范通信:API 提供统一、受控的方式来请求和接收数据。
- 实现自动化集成:API 使不同的软件和系统能够协同工作。
我们可以通过天气应用这个简单的例子,来了解 API 中“接口”的含义。天气应用不会将天气数据存储在手机上,这款应用的开发人员甚至可能不具备任何天气预报或气象专业背景。但它会向气象服务机构的 API 发送请求,并接收当前天气数据。随后,在用户端,这些数据以美观、便捷的方式呈现在应用界面中。用户手机应用与气象服务机构之间的这种交互,正是通过 API 实现的。
API 的工作原理
API 的工作原理是公开有限数量的操作和数据点,与外部软件进行交互。如果一个软件系统需要访问另一个系统提供的资源(比如数据或功能),就会发出请求,详细说明要执行的操作。该请求被称为 API 请求。在 API 获得授权后,另一个系统会处理该请求并返回 API 响应。
API 通常设计为由业务事件触发。事件是对业务具有重要影响的操作或状态变化,例如刷信用卡、办理登机手续、重置密码、更新仓库库存等。因此,我们经常在事件驱动型架构中使用 API 推进端到端流程,在这些流程中,需要访问多个系统才能完成与流程相关的特定任务。
核心组件和结构
API 的核心组件和结构包括:
- 端点
- 方法
- 请求
- 响应
- 认证与授权
端点是指可以访问 API 的特定地址(Web API 为 URL)。每个端点对应特定的资源或功能(例如 /users 或 /products)。
方法是指可以在这些端点执行的操作,由 HTTP 动词定义,例如:
- GET(获取数据)
- POST(创建数据)
- PUT 或 PATCH(更新数据)
- DELETE(移除数据)
API 请求是指客户端发送至 API 服务器的消息,其中包含执行操作所需的数据和参数。API 请求包含:
- 方法和端点
- 包含元数据的请求头
- 包含数据的请求体(可选)
- 查询参数,如筛选条件或排序规则
API 响应是指 API 服务器返回给客户端的数据。API 响应包含:
- 状态码
- 响应头
- 包含数据的响应体
- 错误消息
认证与授权机制用于验证身份并授予访问权限,通常使用 API 密钥、令牌或 OAuth。
如今,API 主要依据模式进行设计,模式定义了 API 的交互规则以及格式、验证机制和记录方式。API 中包括对例程、数据结构、对象类和变量的规范说明,旨在确保系统之间的通信安全、可靠且高效。
同步 API 与异步 API
同步 API 和异步 API 是软件系统处理和响应请求的两种不同方式,广泛用于编程和 Web 开发领域。
使用同步 API 时,当发出一个请求后,程序会阻塞并等待该操作完成,然后才继续执行下一个任务。也就是说,应用会与操作同步,直到请求的操作执行完毕才会继续。在追求简洁性与代码可读性的场景中,通常使用同步 API。
使用异步 API 时,当发出一个请求后,程序会继续执行其他任务,而无需等待该操作完成。因此,异步 API 的响应速度往往更快。在对响应速度和性能要求较高的场景中,通常使用异步 API。
为什么 API 至关重要?
API 之所以重要,是因为它们能够提升可扩展性、实现自动化并促进系统集成。
可扩展性
API 对于应用和系统的扩展至关重要。API 支持模块化开发,使不同的组件可以独立扩展,而不会影响整个系统。
在需要动态处理不同负载的云计算领域,这一点尤为重要。API 使应用能够集成并使用可按需弹性扩缩的服务,从而确保资源得到高效、经济的利用。
自动化
API 是自动化的关键驱动因素。API 让不同软件系统可以直接通信交互,无需用户参与每个步骤。这种自动化是 API 的优势之一,因为在现代工作流中,速度和效率至关重要。通过利用 API 自动化日常任务,企业可以简化流程、减轻工作量,并将宝贵资源释放到需要人工管控的复杂工作中。
集成
API 在集成不同系统方面的优势怎么强调都不为过。无论底层技术如何,API 都能让各类软件组件协同工作。对于使用大量软件解决方案的企业,这种集成能力至关重要。借助 API,这些解决方案可以协同运转,提供统一的用户体验,并确保数据在企业不同部门之间顺畅流转。
API 的三大优势
API 的主要优势包括提高成本效益、提升数据可访问性以及加快开发速度。
1. 提高成本效益
API 可以缩短开发时间,从而显著减少开发成本。API 还支持集成第三方服务,这比从零开始构建复杂系统更具成本效益。
2. 提升数据可访问性
API 让数据访问普惠化。它们提供对数据集的受控访问,支持企业访问原本可能隔离在不同部门或系统中的数据集。这种数据访问机制有助于企业制定由数据驱动的决策。利用 API,企业可以根据需要安全便捷地访问和共享相关数据,从而充分挖掘洞察并释放创新潜能。
3. 加快开发速度
API 的设计充分考虑了开发人员的需求。它们提供标准化的软件交互方式以及完善的配套文档,让开发人员更易理解和使用。API 支持对开发人员友好的模块化开发流程,有助于缩短学习曲线并提高生产力。
SAP 客户案例:如新集团
为了支持快速发展的业务、简化 IT 架构,并实现 SAP 与第三方解决方案之间的快速集成,如新集团 (Nu Skin) 选择了 SAP Integration Suite [集成套件]。
API 示例和用例
API 的示例和用例十分丰富,大部分使用电脑或智能手机的消费者每天都会接触到,只是没有意识到。以下是大家可能比较熟悉的一些常见 API 示例:
- 社交媒体登录:用户选择通过已有社交媒体账号登录网站时,网站会使用社交媒体平台的身份验证 API。
- 在线支付:买家使用数字钱包或其他支付系统在网店结账时,系统会调用支付服务提供商的 API。
- 预订网站:用户使用在线预订平台或旅行社的服务时,平台会通过航空公司、酒店的 API 实时查询舱位或空房情况。
- 包裹追踪:消费者在零售商网站查询物流信息时,实际是在使用物流公司的 API。
行业特定的 API 用例
优化护理协作效率,提升患者诊疗效果。
旅游:API 将旅行社和在线预订平台与航空公司数据库、酒店预订系统以及交通服务连接起来。
社交媒体集成:API 支持开发人员将社交功能集成到应用中,包括登录、内容分享、用户数据获取等。
电子商务:API 支持企业集成支付网关、库存管理和客户服务工具,从而打造顺畅的购物旅程,提升客户体验。
30
%
流程周期缩短
Harrods 公司客户案例
了解 SAP Integration Suite [集成套件] 中的 API 管理功能如何助力 Harrods 公司实施数字化转型并实现向电商平台的战略迁移。
API 类型
API 的类型包括 RESTful API、OData API、SOAP API 和 GraphQL API:
RESTful API
RESTful API 基于表述性状态转移 (REST) 架构构建,广泛用于 Web 服务,基于 HTTP 协议运行,并使用标准 HTTP 方法。RESTful API 通常采用 JSON 或 XML 格式交换数据。RESTful API 是无状态的,这意味着来自客户端的每个请求都包含服务器处理该请求所需的全部信息。
主要优势: 性能优异、简洁易用、可扩展性强。
常见应用场景:云服务、移动应用、物联网设备。
OData API
OData(开放数据协议)旨在通过提供统一的方式公开和使用结构化数据,简化系统间的数据共享和集成。OData API 遵循特定约定,允许客户端使用标准 HTTP 方法与数据资源交互。
主要优势:支持丰富的查询语言、数据获取高效、便于跨服务和跨平台集成。
常见应用场景:需要提升数据访问能力和系统互操作性的企业。
SOAP API
SOAP(简单对象访问协议)API 结构严谨,遵循严格的协议,通过基于 XML 的消息进行通信,以高稳定性和可扩展性著称。但相比 RESTful API,SOAP API 更为复杂,在部分场景中性能较低。
主要优势:在事务管理和安全性方面表现突出。
常见应用场景:金融服务、CRM 等企业级应用系统。
GraphQL API
GraphQL 是一种用于 API 的查询语言,也是一种基于自定义数据类型系统执行查询的运行时。与具有多个端点的 RESTful API 不同,GraphQL API 通常只有一个端点。因此,客户端可以精准地请求所需数据。
主要优势:更灵活、更高效,尤其适合数据类型繁多的复杂系统。
常见应用场景:需要根据具体需求定制数据检索和请求的场景。
API 生命周期
典型的 API 生命周期包括以下阶段:
- 规划与设计:明确 API 的用途、端点、数据模型和身份验证要求,然后创建 API 规范。
- 开发:构建 API,实现业务逻辑,将其连接到数据库或服务,并确保执行恰当的错误处理、版本管理和文档编写。
- 测试:验证 API 的功能运行情况、异常处理能力,以及在高负载下的性能表现。
- 部署:将 API 发布到生产环境或预生产环境,供用户调用。
- 集成:将 API 集成到应用中,并按需提供清晰的文档和软件开发工具包。
- 监控:跟踪使用情况、性能、错误和正常运行时间,确保 API 顺畅运行。
- 维护:根据用户反馈发布更新、修复漏洞、更新安全补丁和优化功能。若改动较大,可发布新版本。
- 启用和下线:当旧版本或整个 API 不再需要时,逐步下线,并提前向使用者传达变更和停用计划。
API 文档和规范
清晰详尽的 API 文档是 API 开发和使用中不可或缺的一部分。
- 促进采用:开发人员需要了解 API 的工作原理才能有效使用。
- 减轻支持负担:清晰的文档能够解答常见问题,避免重复的支持查询。
- 加快集成:清晰的示例和说明有助于开发人员更快地实施 API。
- 预防错误:记录必填字段、数据格式和错误代码,有助于用户规避错误。
- 建立信任:专业的文档标志着 API 可靠且得到妥善维护,值得信赖。
API 带来的主要挑战
API 带来的挑战主要集中在 API 安全性、合规性、版本弃用和 API 限流等方面。
API 安全风险
API 作为软件应用的接口,容易遭受各种安全威胁,例如:
- 数据泄露
- 未经授权的访问
- 分布式拒绝服务 (DDoS) 攻击
- 注入攻击
- 授权失效
- API 密钥泄露
- 中间人攻击
因此,采取身份验证、授权、加密等强安全措施至关重要。API 安全是一项持续的工作,需要持续监控和更新,以防范不断出现的新型威胁。
API 限流
对 API 负载进行管理是保障性能与可用性的关键。API 限流是一种用于控制 API 处理流量的策略,可防止接口被过度使用或滥用,并降低单一来源 DoS 及 DDoS 攻击的影响。然而,实施有效的限流机制颇具挑战,需要在防止 API 过载与放行合法请求之间取得平衡。
版本弃用与版本管理
API 会随时间推移不断演进,需要进行更新和调整。通过版本管理和弃用旧版本来应对这种演进是一项重大挑战。这需要确保向后兼容性、及时向用户传达变更信息,并在不影响业务运营的前提下引导用户迁移至新版本。
供应商锁定
企业使用 API 时面临的一个重大挑战是供应商锁定风险。当企业过度依赖某一供应商的 API 时,就会难以切换至其他供应商,这就是供应商锁定风险。缓解这种风险的常见方法包括:
- 优先选用具备可移植性、遵循开放标准的 API
- 采用多供应商策略,并制定供应商应急计划
- 培养内部专业能力,减少对外部供应商的依赖
合规性和数据隐私
在数据成为重要资产的时代,遵守数据隐私法律法规至关重要。企业必须确保在使用 API 时遵守各种规范,例如《通用数据保护条例》(GDPR)、《健康保险流通与责任法案》(HIPAA)。具体包括:
- 实施完善的数据治理实践
- 确保数据收集和使用清晰透明
- 获取必要的用户授权
- 杜绝安全配置方面的疏漏
- 着重落实 API 安全措施
- 确保敏感数据不会显示在 URL 中
此外,定期开展审计并紧跟法规更新,也是确保合规和保护客户数据的重要举措。
API 与业务影响
API 的集成对现代企业产生了根本性影响。对企业而言,API 不仅是一项技术,也是:
- 战略资产:API 集成使企业能够充分利用现有基础设施和数据,开辟与客户、合作伙伴乃至竞争对手互动的新途径。
- 业务模式推动者:API 能够简化集成、实现安全的数据交换并推动快速创新,因此有助于打造新的业务模式、产品和服务。例如,软件即服务 (SaaS) 模式就依赖于 API。
- 收入来源:企业可以利用新的业务模式将数据和服务变现,创造新的收入流。
- 平台基础:API 推动了平台化业务模式的兴起。在这种模式下,企业搭建技术平台并供其他企业使用,从而形成一个由相互依存的服务和产品构成的网络。
- 数字生态系统的核心要素:API 通过让不同软件和服务互通,助力企业构建互联的生态系统。由此形成的一体化综合方案可为客户创造更高价值。例如,在 API 的支持下,金融科技生态系统兴起,通过整合各种金融服务,彻底重塑了传统银行业。
- 扩大市场范围的催化剂:借助 API,企业能够轻松对接外部平台和服务,触达更广泛的受众并开拓新市场。这对于成长型企业尤为重要,因为 API 可以帮助他们参与大规模竞争,并且通常只需较少的前期投资。
API 端点管理卓越实践
API 端点管理的卓越实践主要聚焦于端点安全性、清晰性和高效的数据传输。
- 使用清晰一致的命名和方法:遵循明确的命名规范,使用名词表示资源和逻辑层次结构,使用复数名词表示集合,并使用标准的 HTTP 方法动词。
- 保持端点职责单一:每个端点应只承担单一、明确的职责,而非试图同时处理过多任务。
- 重视 API 安全:实施强身份验证和 OAuth 2.0 等授权机制,并使用 SSL/TLS 对传输数据进行加密。定期进行渗透测试和 API 安全审计,检测安全性。
- 优化端点性能:仅返回必要数据以减少数据有效负载,利用缓存机制减轻服务器负载,并通过 API 限流控制流量、防止过载。
- 完整记录所有信息:针对所有端点做好详细、严谨、最新的文档记录,包括示例和清晰的变更日志。
API 的未来发展趋势
展望未来,API 将朝着更加个性化、智能化和更具情境感知能力的方向发展。随着 AI 和机器学习深度融入 API,接口将变得更加智能,能够预测用户需求并更高效地实现流程自动化,尤其在 AI 越来越多地被应用于开发领域的背景下,这一趋势更加明显。
此外,随着对数据隐私和安全的担忧日益增加,API 安全实践与治理将受到更高重视。零信任架构、严格的身份验证方法以及自动化威胁检测正变得越来越普遍。
另一个可能的趋势是无服务器 API 的兴起,此类 API 利用能够自动伸缩的云函数运行,无需企业管理服务器。
最后,API 开发人员的体验将得到提升。面向开发人员的软件日趋成熟,配有更先进的文档工具、交互式测试环境和编码工具。AI 增强的开发人员工具提供机器学习、自然语言处理和生成式 AI 功能,有时甚至直接内置于编码软件中,可通过 AI 智能副驾轻松访问。
常见问题