API是什么?

幂简集成 2024年03月04日

      

API是什么

      API是Application Programming Interface的缩写、译做”应用程序接口”,是一种计算接口。它定义多个软件中介之间的交互,以及可以进行的调用(call)或请求(request)的种类,如何进行调用或发出请求,应使用的数据格式,应遵循的惯例等。它还可以提供扩展机制,以便用户可以通过各种方式对现有功能进行不同程度的扩展。一个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等的调用模型比较比较来进一步了解。

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

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

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

      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’。

  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