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服务器可以承载多个端点--每个端点都被分配了一个统一的资源标识符(URI),以便API客户能够找到它。 在大多数情况下,这个URI是一个统一资源定位器(URL),它指向基于互联网的位置(例如一个网站)。
API模式是一种元数据,它定义了一个API请求必须满足的规格,以便被视为有效。 这些规范可能包括细节,包括目标端点、HTTP方法和其他由开发者建立的要求。
当一个API调用从客户端发出时,它必须满足模式中列出的条件。 只有这样,API端点才能返回所请求的信息。 为了说明这一点,想象一下,鲍勃正在计划一个聚会。 在邀请函上,他明确指出,只有带来黄色雏菊的客人才会在聚会后得到感谢卡。 然而,如果卡罗尔决定带红玫瑰去参加聚会,那么她事后将不会收到感谢卡。
同样,不符合API模式所设定的要求的API调用将不会收到响应。
就像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攻击包括以下内容:
Cloudflare API Gateway通过提供强大的认证、扫描敏感数据的有效载荷、验证API模式以及检测和防止API滥用,帮助缓解这些攻击。 了解更多关于 Cloudflare API Gateway。