API 的类型 | 什么是 API? | 不同类型的 API
什么是 API?API 的类型
自第一代计算机诞生以来,API 就一直在革新世界,但它们并非像今天这样使用高级语言编写。API 是编程的核心概念,每个程序员都必须学习才能达到熟练的工作水平。如今,API 已经达到了相当高的复杂程度,需要将其划分为不同的 API 类型才能更好地理解。
什么是 API?API 的类型
API 是应用程序编程接口的首字母缩写词,它是指一组允许创建访问其他应用程序、服务或操作系统的功能或数据的应用程序的功能和程序。
文章来源:https://www.decipherzone.com/blog-detail/Types-of-APIs
通俗地说,API 是连接应用程序的管道,这些连接是使用另一个应用程序的功能进入主应用程序来完成的,在 API 中定义了将通过这些 API 进行通信的消息类型。
例如,许多网站显示来自 Twitter 的实时信息,因此他们在其网站上使用来自 Twitter 的 API 来获取和显示实时信息。
API 的类型
API 的分类可以根据以下三个参数进行:
Web API 的所有权类型
在所有权级别,有四种主要类型的 API:
开放 API:这些 API 是公开可用的,就像 Google 的 Oauth API 一样,并且没有任何使用限制。因此,它们也被称为公共 API。
合作伙伴 API:此类 API 不对外开放,因此需要特定权限或许可才能访问。通常,这类 API 与付费服务相关。
内部 API:公司开发的用于内部系统的 API,用于提高开发团队的生产力,其中一个团队可以使用公司其他项目的服务,这种 API 称为内部 API。这些 API 也称为私有 API。
复合 API:流程和复合 API 都是一系列任务,但复合 API 结合了不同的数据和服务 API。复合 API 是一系列同步执行的任务,其触发结果由执行本身决定,而非在任务请求时包含执行结果的请求。复合 API 的主要用途是加快执行速度并提升 Web 界面监听器的性能。
API 的通信级别
高级 API
高级 API 是我们通常以 REST 形式使用的 API,其中程序员具有较高的抽象级别,并且他们只关心执行有限的功能。
低级 API
低级 API 的抽象级别较低,因此功能最为详细,允许程序员在更精细的层面上操作应用程序模块或硬件内部的函数。通常,低级 API 用于响应触发器(例如 Vulkan API)发送实时视频或媒体源。
Web 服务 API
在 Web 服务 API 中,分类是根据构建 API 时使用的通信类型和行为方法进行的:
*肥皂
XML-RPC
JSON-RPC
*休息
Web 服务 API 是使用互联网上的 URL 或网址向桌面、移动、Web 应用程序和其他应用程序提供服务的小型应用程序。
肥皂
SOAP(简单对象访问协议)API 比其他同类 API 更复杂。这些 API 拥有自己的通信协议,称为简单对象访问协议 (SOP),这使得它们在安全级别和消息发送方式方面比 REST 更具定义性。SOAP 提供全面的安全性、内置的 ACID(原子性、一致性、隔离性、持久性)合规性和重试逻辑,以实现可靠的消息传递功能,使其更适合处理银行交易、LDAP 交互等的企业级应用程序。
SOAP 是一种标准化协议,它仅使用专有的 XML 格式来传输更具功能驱动的结构化信息。API 用于发送有效负载,即数据、其类型和通信首选项。由于 SOAP 使用 XML 发送有效负载,因此需要更多带宽。除了 SSL 支持外,SOAP 还使用 WS-Security,它在传输层非常出色,并且比 SSL 更全面。由于安全性高,基于 SOAP 的调用无法被缓存。SOAP 与服务器紧密耦合,彼此之间存在严格的通信契约,这使得更改或更新更加困难。与 SOAP API 交互需要了解所有信息,甚至在发起交互之前就需要了解所有信息。
SOAP 内置了 ACID 兼容性,通过精确规定事务与数据库的交互方式,可以减少异常并保护数据库的完整性。ACID 远优于数据一致性模型。ACID 已应用于结构化数据库(例如 Oracle 的 SQL 数据库),用于处理银行交易以及大型电商平台的库存管理。
SOAP 具有内置的成功/重试逻辑,并通过 SOAP 中介提供端到端的可靠性。
在构建应用程序中想要使用 SOAP API 的用例只是希望实现高级别的安全性。
XML-RPC
XML-RPC(可扩展标记语言 - 远程过程调用)是一种使用特定 XML 格式传输数据的协议。XML-RPC 占用的带宽最少,并且比 SOAP 更简单、更古老。
JSON-RPC
JSON-RPC(JavaScript 对象表示法)是一种使用 JSON 格式传输数据的协议。RPC 调用是微服务架构中服务之间进行通信的方法之一。
休息
REST(表述性状态转移)是一种更注重数据驱动的架构风格,我们在构建 REST API 时正是使用这种风格。REST API 基于 URI(统一资源标识符)HTTP 协议,并使用 JSON 作为数据格式,这种格式与浏览器高度兼容。与其他类型的 API 相比,REST API 的构建和扩展都更加简单。
*REST API 简化了客户端与服务器之间的通信。
*REST API 使用 SSL 安全性,这意味着它可以使用 HTTPS。
*REST API 使用不同的数据格式,包括纯文本、HTML、XML 和 JSON 发送有效负载,这非常适合数据并产生更多的浏览器兼容性。
*使用更简单的数据格式使得有效负载更轻,这使得 REST API 更适合更广泛的应用程序。
REST API 使用单一统一的接口。这简化了应用程序与 API 的交互方式,因为它要求所有应用程序都通过相同的门户以相同的方式进行交互。这既有优点,也有缺点。
*REST 调用可以被缓存。
*REST API 最适合可靠性和可扩展性。
*您可能希望构建 RESTful API 的原因是因为它包括资源限制、更少的安全要求、浏览器客户端兼容性、可发现性、数据健康和可扩展性。
以下是阅读全文的一些额外信息
REST 中的无状态是什么意思?
在 REST(表述性“状态”传输)架构中,服务器不会在服务器端存储任何有关客户端会话的状态。这种限制被称为无状态。客户端向服务器发送的每个请求都必须包含理解该请求所需的所有信息,并且不能利用服务器上存储的任何上下文。因此,会话状态完全保存在客户端。客户端负责在客户端存储和处理所有与应用程序状态相关的信息。这也意味着客户端负责在需要时将任何状态信息发送到服务器。因此,服务器上不应该存在任何会话关联或粘性会话。
文章来源:https://www.decipherzone.com/blog-detail/Types-of-APIs
文章来源:https://dev.to/decipherzonesoft/types-of-apis-what-are-apis- Different-types-of-apis-3mjm