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

API是什么?

API是什么

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件系统之间进行交互和通信的规则集合。它定义了软件组件之间如何请求和传输数据,使得开发者能够通过预定义的接口访问特定功能或数据,而无需从头编写代码。API 的存在极大地提高了软件开发的效率,促进了系统的集成和数据共享。例如,Web API 可以让网站通过 HTTP 请求从外部服务获取数据,而系统 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,通用调用模型都包括2个关键环节:协议层(包括序列化与反序列化)、传输层。可通过RPCRMISOAPgRPC等的调用模型比较比较来进一步了解。

RPC具体调用流程

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

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

几种当下主流的API技术体系

  1. SOAP
  2. RESTful
  3. GraphQL
  4. gRPC
  5. WebSocket
  6. Webhook

几种当下主流的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理念

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

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

服务注册中心


API可用性

API安全性

  • 限流
    限流是一种保护错误,避免服务被突发的或者大量的请求所拖垮。
  • 身份认证
  • 访问授权

API路由

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

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

路由策略有:

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

API工具

参考资料

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