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

API是什么?

API是Application Programming Interface的缩写、译做”应用程序接口”,是一种计算接口。它定义多个软件中介之间的交互,以及可以进行的调用(call)或请求(request)的种类,如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。

API还可以提供扩展机制,以便用户可以通过各种方式对现有功能进行不同程度的扩展。

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