所有WIKI > A字母 > API是什么?

API是什么?

 

API(应用程序编程接口)是一组规则和协议,允许不同的软件系统相互通信。它是软件系统之间的中介,允许它们交换数据并执行特定操作。它可以访问API 服务,例如天气数据、社交媒体帖子或支付处理服务。

API 允许开发人员访问现有软件系统的功能并将其集成到自己的应用程序中。

API 可以向开发人员公开特定功能或数据,使他们能够构建或改进新应用程序。此外,API 还可以通过提供访问特定功能或数据的标准化方式来简化开发流程。

应用程序编程接口的好处

应用程序编程接口 (API) 为软件开发带来了许多好处,增强了功能、效率和集成能力:

  1. 简化集成:API 支持不同软件系统之间的无缝通信和数据共享,使集成变得毫不费力。
  2. 增强功能:它们允许开发人员通过访问外部服务快速向其应用程序添加复杂的功能,而无需重新设计轮子。
  3. 节省时间和资源:通过提供预构建的功能,API 可显著减少开发时间并节省资源。
  4. 促进创新:API 使开发人员更容易在现有平台和服务上进行构建,从而鼓励创造新的创新解决方案。

API 用例

API(应用程序编程接口)可实现跨不同领域的多种功能。以下是一些常见用例:

  • 数据集成:在不同的软件平台(如 CRM 和电子邮件营销工具)之间同步数据。
  • 支付系统:通过 PayPal 或 Stripe 等服务促进安全的在线交易。
  • 社交媒体服务:允许应用程序发布内容、验证用户并从 Facebook 或 Twitter 等平台获取用户数据。
  • 地图和位置服务:通过 Google 地图或类似服务将地图、导航和位置数据集成到应用程序中。
  • 天气服务:将来自 OpenWeatherMap API 等来源的实时天气信息整合到应用程序中。
  • 医疗保健应用程序:通过符合法律标准的医疗保健 API 安全地访问患者记录和健康数据。
  • 电子商务:通过支付处理、产品推荐和库存管理的 API 增强在线购物体验。
  • 物联网设备:连接和管理物联网设备,促进设备与服务器之间的通信和数据交换。ZEGOCLOUD API 可以在此发挥关键作用,为物联网生态系统内的实时通信提供可扩展的解决方案,并增强设备交互性和用户参与度。
  • 机器学习和人工智能:通过人工智能平台提供的 API 将图像识别、语言翻译或聊天机器人等人工智能功能嵌入到应用程序中。
  • 分析和报告:与分析平台集成以收集有关用户行为、应用程序性能或营销活动的见解。

 

本文主要讲API的架构和核心部件,给开发者提供一个理解API的蓝图:

1、API的体系架构,主要从计算机体系出发,讲广义上的API分层架构。当软件工程师在讨论API时,主要指网络API,可以阅读远程API技术史来加强理解。
2、网络API的工作原理,主要讲网络API的调用模型,这个模型是通用的,具有技术无关性,可以阅读RPC详解来深入理解API的工作机制,后来的各类API技术都基于这一模型。
3、网络API的应用分类,从应用范围划分API的类别,便于沟通时进一步缩小范围,同时便于理解主流API技术体系的适用范围。
4、互联网时代的主流API技术体系,2000年之后的API技术实现倾向低耦合、跨平台,逐级演变为当下企业RPC应用的主流技术。
5、网络API的生命周期,主要从研发流程理解API是怎么创建的,怎么用的,以及API工具在各个研发节点的作用。
6、最新API理念API-First战略、API经济API生态已经成为数字化的核心概念之一,从事软件研发,这些概念不可避免的会接触,它们理解容易,落地非常困难,是首席架构师必修技能。

API体系架构

API大致分为两大类: 一类是控制硬件的;一类是控制软件的。API伴随着计算机的发展而进化,外延逐步发生了一些变化,依据功能的差异,可大致可以分为5层计算接口:

  1. 硬件层: 中断是最常见的芯片与其它硬件设备的计算接口,可以说整个计算机体系就是由中断来驱动的,硬件编程的关键点就是中断处理与时钟处理。
  2. 驱动程序层: 驱动程序是让操作系统及应用与设备进行通信的结算接口,在编写某些特殊应用时,操作系统接口不能满足满足需求时,我们会直接调用驱动程序来控制设备,例如AI大模型最常用的Navida CUDA Toolkit
  3. 系统层: 操作系统API及各类SDK是给应用程序使用操作系统的资源和功能的计算接口,例如文件系统、网络、内存、进程、图形、音频、计算等。
  4. 局域网应用层: 远程API技术历史比较久,在网络建立之初即出现。2000年前后,应用层API以分布式系统对象模型(Distributed System Object Model)及个性化RPC调用模型为主,比较常用的布式系统对象有OMG的Corba微软的COMJava的RMI。随着互联网企业崛起及SOA概念的普及、叠加CPU及千兆网的快速发展,扩展性为主的一批 轻量级RPC模型 逐级成为主流,例如:SOAP、Protocol Buffer、Thrift、Avro、Hessian、gRPC、Dubbo、JSON-RPC等。
  5. 互联网应用层:RESTful API是起源于互联网SAAS、爆发于移动应用,本质是远程API的一种。之所以把它单独分为一层,是因为未来大家沟提到API时,默认语义基本指它。

特别说明:本网站所讨论的API可理解为狭义API,主要指远程API、互联网API。

网络API工作原理

API 架构通常从客户端和服务器的角度来解释,发送请求的应用程序称为客户端(Client),发送响应的应用程序称为服务器(Server)。以天气API为例,气象局的天气数据库是服务器,而移动应用程序是客户端。

1、API调用模型

基于网络的API架构,其调用模型都包括2个关键环节:协议层(包括序列化与反序列化)、传输层。可通过RPCRMISOAPgRPC等的调用模型比较比较来进一步了解。

RPC具体调用流程

2、API调用的安全模型

API跨越网络边界时,则会涉及到安全问题,当下有两种主要解决方案:
方法一: 在协议层增加安全扩展、在调用模型上增加认证/访问控制,例如SOAP调用模式;
方法二: 协议不变,互联网应用的通用做法,在服务端增加API网关,由网关负责身份验证及访问控制,例如:RESTful调用。

增加身份及安全后的调用流程

网络API有哪些分类?

API 根据其架构和使用范围进行分类。我们已经探讨了 API 架构的主要类型,下面我们来看看它的使用范围。

1、私有 API:这类 API 面向企业内部,仅用于连接企业内的系统和数据。

2、公有 API :这类 API 面向公众开放,任何人都可以使用。可能存在与这些类型的 API 相关的授权和成本。

3、合作伙伴 API :只有获得授权的外部开发人员才能访问,这些 API 有助于企业之间建立合作伙伴关系。

4、复合 API :这些 API 融合了两个或多个不同的 API,可以满足复杂的系统要求或处理复杂行为。

探索API的多维世界:分类、设计与应用一文中,增加了两种分类维度。

主流API技术体系

  1. SOAP技术体系,什么是SOAP API?这些 API 使用简单对象访问协议。客户端和服务器使用 XML 交换消息。这是一个不太灵活的 API,它在过去比较流行。
  2. RESTful技术体系,什么是REST API?指采用了RESTful架构约定的API,REST API 的主要特点是无状态。无状态意味着服务器不会保存各种请求之间的客户端数据。客户端对服务器的请求类似于您在浏览器中键入的、用来访问网站的 URL。
  3. GraphQL技术体系,什么是GraphQL APIGraphQL 是一种专门为 API 开发的查询语言。它只是为了优先为客户端提供所请求的确切数据。它旨在提高 API 速度和灵活性,并便于开发人员使用。
  4. gRPC技术体系,什么是gRPC API?gRPC是一个现代开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以有效地连接数据中心内和跨数据中心的服务,并支持负载平衡、跟踪、运行状况检查和身份验证。
  5. WebSocket技术体系,什么是WebSocket API?Websocket API 是另外一种使用 JSON 对象传递数据的现代 Web API 开发方式。WebSocket API 支持在客户端应用程序和服务器之间进行双向通信。服务器可以向连接的客户端发送回调消息,使其比同步调用模式的REST API 更高效。
  6. Webhook技术体系,什么是Webhook API?一种异步API调用模式,一般采用RESTful约定来设计API接口。

API接口的作用是什么?

API 端点是 API 通信系统中的最终接触点。其中包括服务器 URL、服务和其他特定数字位置,通过这些端点可在系统之间发送和接收信息。API 端点对企业至关重要,主要有以下两个原因:

1.安全性:API 端点使系统容易受到攻击,API 监控是防止滥用的关键。

2.性能:API 端点(尤其是高流量端点)可能会引发瓶颈并影响系统性能。

API 安全如何保证?

询问 API 是否安全就像询问 Web 应用程序是否安全一样。因此,简单的答案是,这完全取决于 API安全最佳实践 的实施 和 API生命周期管理的执行。

API 可以是安全的,但由于 API 的数量和复杂性,很容易引发 API安全漏洞。与网络安全的许多其他方面一样,API 防御者必须每次都正确防御,而攻击者只需要一个弱点就能成功入侵。

一个组织可以拥有数十、数百甚至数千个 API,用于将内部应用程序相互连接以及与外部世界连接。如果未妥善保护 API,它们可能会成为从外部直接访问组织关键数据和应用程序的网关。问题在于 API 的采用往往超过组织保护和管理它们的速度。

网络API研发生命周期

从API提供者、API使用者两个角度,将其分为API生产阶段、API消费阶段,每个阶段都单独存在,都有独特的技术栈、问题域。
有时候,企业使用三方API构建特色业务,然后将特色业务以API的方式提供给内外部客户,此时两者在业务上是上下游关系。
有时候,企业私域API数量非常多,需要统一的API治理能力,此时两者又形成交集。一般情况下,企业会以iPASS为代表的集成软件来构建API服务中台,优先服务企业内部应用,做好治理工作,然后再通过API网关+API商城实现API的开放、甚至API货币化

API生产生命周期

Postman为代表的API生产工具厂商,一般将API生产分为下述4个主要阶段。

  1. API设计
  2. API测试
  3. API发布
  4. API管理

API消费生命周期

幂简集成将API消费生命周期划分为两大环节、八个小阶段。这包括API对接的发现、对接、联调阶段,以及API管控的采购、发布、监控、运营、治理阶段。它全面提供了API的规划、共享、治理、安全、合规等方面的业务能力,有助于确保企业数字化业务的高可靠运行。
API消费生命周期
API集成阶段:服务于项目立项到项目上线之前的阶段,聚焦在’快速原型验证’、’快速变更API’。

  1. API发现
  2. API对接
  3. API联调
    API管理阶段:服务于项目上线之后,分为项目0到1验证时期,聚焦在’零开发API运维’、’零开发API运营’;项目1到N高速增长时期,聚焦在’API可用性’、’数据安全’。
  4. API采购
  5. API发布
  6. API监控
  7. API运营
  8. API治理

API路由

API路由在提供方、集成方都会用到,用于解决API的可用性问题,是提高整个系统可用性的关键技术节点。

在大型的API系统中,我们会为同一个服务部署多个节点, 以便服务可以支持大并发的访问。它们可能部署在同一个数据中心的多个节点,或者多个数据中心中,此时需要做API路由来提升可用性。
路由方式一般有两种:

  • 客户端路由
  • 服务端路由

路由策略有:

  • 随机
    从配置的节点中随机选择一个节点。最简单,但是有时候单个节点的负载比较重。这是因为随机数只能保证在大量的请求下路由的比较均匀,并不能保证在很短的时间内负载是均匀的。
  • 轮询
    使用轮询的方式,依次调用节点,能保证每个节点都均匀的被访问。在节点的服务能力都差不多的时候适用。
  • RoundRobin
    最简单的RoundRobin策略是基于策略,复杂一点的策略是基于网络质量等。
  • 地理位置优先
    如果我们希望的是客户端会优先选择离它最新的节点, 比如在同一个机房。 如果客户端在北京, 服务在上海和美国硅谷,那么我们优先选择上海的机房。

API工具

在API研发生命周期过程中,为了提高效率、安全性、可用性等,出现了很多专用API软件,用于辅助程序员和企业快速实施API。

最新API理念

移动互联网的兴盛、SAAS业务被企业所接受等趋势的推动下,一些新的API理念逐步提出且为大众所接受:

  1. Restful 约定大于一切,复用WEB基础设施,简化RPC过程、降低互操作性
  2. API First,面向未来的数字底座
  3. API货币化API经济AI互联网时代,一切计算都将API化来适应真正的自然交互模式及元宇宙空间
  4. API即产品,是B2B模式对不断变化的趋势做出的自然演变

在哪里可以找到新的 网络API?

可以在 API 市场和 API 目录中找到新的 Web API。API 市场是一个开放的平台,任何人都可以在这里上架 API 来出售。API 目录是受目录拥有者监管的受控存储库。专业 API 设计者在将新 API 添加到他们的目录之前,可能会对其进行评估和测试。

幂简集成是国内领先的API集成管理平台,专注于为开发者提供全面、高效、易用的API集成解决方案。可以通过以下两种方式找到所需API:通过关键词搜索API(例如,输入’AI大模型‘这类品类词,更容易找到结果)、或者从API Hub分类页进入寻找。

参考资料

API定义:
IBM API定义
Amazon API定义
Redhat API定义
API架构:
浅谈6种流行的API架构风格
SOAP vs REST vs GraphQL vs RPC