API 是如何工作的?

API允许应用程序通过发送和接收API调用来交换信息。

学习目标

阅读本文后,您将能够:

  • 描述API是如何工作的
  • 区分API端点和客户端
  • 比较不同的API协议

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

API 是如何工作的?

应用程序设计接口(API) ,允许软件程序通过发送和接收API调用,或信息请求来相互通信。 这些请求由API客户端发起,由API端点接受。

为了在API之间交换信息,开发者必须提供API文档,描述API可以接受的请求类型、它被设计用来支持的用例以及任何其他条件(如 协议、模式和安全要求),要求第三方遵守。

API调用允许API共享功能,而不需要开发人员为每个单独的应用程序从头开始重写功能。 没有它们,开发者将无法轻松地在多个应用程序中复制功能,或从其他应用程序、服务和供应商那里请求数据。

什么是 API?

API是一个接口,使软件程序能够共享数据和功能。 这种通信方法有助于增强大多数现代网络应用的功能。

例如,想象一下,爱丽丝开发了一个应用程序,可以根据听众的情绪定制古典音乐的播放列表。 她可以使用连接到外部音乐库的API,而不是手动输入数以千计的曲目来填充这些播放列表--这样做可以节省时间、金钱和开发挑战。

API的使用案例几乎是无限的。 他们连接 云服务,查询数据库,自动更新移动应用程序,将内容流向多个设备,汇总航班价格和食品交付选项,等等。

什么是API客户端?

API客户,有时被称为 "用户",是启动API调用的软件。

在与API端点互动之前,API客户需要验证其身份。 这有助于防止攻击者利用API进行 分布式拒绝服务(DDoS)攻击 或其他恶意行为。

通常情况下,身份验证通过四种方法之一进行:一个独特的字符串(API 密钥)、一个用户名和密码组合、一个 OAuth 令牌,或 mutual TLS。使用强大的认证方法是开发人员可以保护 API 免受攻击的方法之一。(了解有关 API 安全的更多信息。)

什么是 API 端点?

一个 API端点 ,接受API调用并返回所要求的信息。

API客户端和端点都是指托管在服务器上的软件程序,而不是离散的硬件设备。 API服务器可以承载多个端点--每个端点都被分配了一个统一的资源标识符(URI),以便API客户能够找到它。 在大多数情况下,这个URI是一个统一资源定位器(URL),它指向基于互联网的位置(例如一个网站)。

什么是API模式?

API模式是一种元数据,它定义了一个API请求必须满足的规格,以便被视为有效。 这些规范可能包括细节,包括目标端点、HTTP方法和其他由开发者建立的要求。

当一个API调用从客户端发出时,它必须满足模式中列出的条件。 只有这样,API端点才能返回所请求的信息。 为了说明这一点,想象一下,鲍勃正在计划一个聚会。 在邀请函上,他明确指出,只有带来黄色雏菊的客人才会在聚会后得到感谢卡。 然而,如果卡罗尔决定带红玫瑰去参加聚会,那么她事后将不会收到感谢卡。

同样,不符合API模式所设定的要求的API调用将不会收到响应。

什么是 API?

就像API本身一样,API调用根据API文档中列出的规范而有所不同。 然而,一般来说,一个API调用遵循三个基本步骤:

  1. API客户发起API调用,或请求提供信息。 API客户端必须根据API端点提供的协议和模式来格式化请求。
  2. API端点收到请求。 然后,API端点对API客户端进行认证,并验证API模式。 这有助于确保:a)呼叫来自一个经过验证的来源;b)请求的条件已经得到满足。
  3. API端点将请求的信息返回给API客户端。 API模式决定了可能返回给客户的响应的类型。

关于API调用的更深入解释,请阅读 什么是API调用?

API使用什么协议和架构?

API是由几个不同的协议支持的。 协议 是一种通过网络进行通信的方法;它告诉API如何格式化请求和响应。 所使用的API协议类型取决于开发API的目的、它所服务的用例以及它所带有的限制。

两个最常见的API协议是简单对象访问协议(SOAP)和远程程序性调用(RPC)。 代表性状态转移(REST)是一种软件架构,经常与这些协议相比较。

SOAP 为使用不同操作系统和架构的API之间发送和接收调用提供了一种标准化的方法。 它还与 超文本传输协议(HTTP)、文件传输协议(FTP)、 简单邮件传输协议(SMTP),以及其他应用层协议兼容。 它只能使用可扩展标记语言(XML)向API客户返回数据。

RPC 是在API之间进行通信的最简单和最古老的方法之一。 它的工作原理是启动一个 远程程序性调用,在这个过程中,客户端向远程服务器请求一个函数。 RPC和SOAP/REST的主要区别在于,RPC有助于执行特定的行动(或功能),而SOAP/REST则用于检索资源(或数据)。

REST 指的是REST架构,它部分地决定了API调用的格式。 简单地说,REST允许客户端向服务器请求资源,而服务器则以其当前状态向客户端返回信息。 REST API通常使用HTTP协议来格式化请求和响应,但也与(FTP)、SMTP和其他协议兼容。 它们可以使用几种不同的格式向API客户返回数据,包括XML、JavaScript对象符号(JSON)和超文本标记语言(HTML)。

API是否容易受到安全风险的影响?

像任何连接到网络的东西一样,API也很容易被利用和滥用。 常见的API攻击包括以下内容:

  • 基于认证的攻击: 认证是确保API调用从合法来源发送和接收的一个关键部分。 然而,攻击者仍然可以绕过这些措施进行攻击,可以通过拦截认证令牌,窃取API密钥,或使用其他战术来获得机密凭证。
  • 漏洞利用: API漏洞--如破损的对象级授权、破损的用户认证、过度的数据暴露,以及其他来自 OWASP API安全10强 ,指的是API中可能允许攻击者未经许可访问它们的缺陷。 通过利用这些缺陷,攻击者可以进行数据泄露或使用API来发动更复杂的攻击。
  • DDoS攻击: 攻击者可能会用大量的流量淹没API,试图中断(或完全停止)其提供的服务。

Cloudflare API Gateway通过提供强大的认证、扫描敏感数据的有效载荷、验证API模式以及检测和防止API滥用,帮助缓解这些攻击。 了解更多关于 Cloudflare API Gateway