尽管 API 的历史最近,但它们已经如此迅速地渗透到数字生态系统中,以至于当今的一切都依赖于它们。 从 Web 开发到移动应用程序,API 已成为数字世界的构建块。
多年来,API 已经发生了显着的发展,因此如今出现了各种类型的 API,每种类型都有其自己的用途。 此外,API 不仅根据其架构进行分类,还根据其访问策略进行分类。 因此,了解这些 API 的不同性质至关重要。
如果您对使用哪个 API 以及何时使用感到困惑,本指南将帮助您消除困惑,并帮助您选择正确的 API! 让我们直接开始吧。
API 有哪些不同类型?
API 主要有四种类型:
公共 API
内部 API
合作伙伴 API
复合 API
公共 API
公共 API,也称为外部或开放 API,是由公司、组织或平台向开发人员、企业和公众提供的 API。 这些 API 提供对 API 提供商向外部用户或第三方开发人员公开的某些功能或数据的访问。 您可以通过某种形式的身份验证(通常是 API 密钥)访问这些 API。
一些公共 API 是免费的,而另一些则需要根据调用 API 的次数付费。 付费公共 API 的一个例子是 Google Translate API,每翻译 20 万个字符的费用为 1 美元。
内部 API
内部 API(也称为私有 API 或内部 API)是为在组织内部使用而开发的。 这些 API 充当公司内不同组件、服务或应用程序之间的通信桥梁,不适用于第三方外部访问或使用。
虽然内部 API 的文档和命名约定很灵活,因为它们通常不遵循 OpenAPI的 标准它们通常不如其他类型的 API 安全。
合作伙伴 API
合作伙伴 API 也称为外部 API。 这些 API 促进不同企业、组织或实体之间的通信和数据交换,并支持合作公司之间对某些功能、服务或数据的受控访问。
想象一下基于云的会计软件和支付处理公司之间的合作伙伴关系。 合作伙伴 API 允许软件与支付处理商的服务集成。 支付公司通过这种方式向多个公司提供API。
复合 API
复合 API 允许您在一次调用中执行多个 API 请求。 因此,简而言之,您可以通过一次调用执行复杂的操作,从而减少与服务器的往返次数并提高性能。 复合 API 对于多个 API 调用紧密相关且需要按特定顺序执行的场景特别有用。
想想一个电子商务网站。 购买有多个步骤:
搜索产品。
单击结果。
添加到购物车。
结帐。
与其单独执行每个调用,不如立即组合并执行它们,效率更高。
API协议
API 协议是指不同软件组件或系统之间进行通信的一组规则、标准和约定。 它概述了应用程序或服务可以交互和交换数据的结构和方法。
了解不同类型的协议非常重要,因为您创建和管理 API 的方式会受到您使用的协议的影响。
常见的API协议有:
REST的
SOAP
GraphQL
RPC的
REST API
REST 的完整形式是 代表性国家转移。 REST API 使用 HTTP请求 (GET、POST、PUT、DELETE)通过 URI 与资源(数据)交互。 它们遵循无状态通信,通常使用 XML 格式进行数据交换。
REST API 的定义如下:
资源导向: REST API 将数据视为资源,每个资源都具有唯一标识符(URI 或 URL)。
客户端-服务器架构: REST API 将客户端(应用程序)与服务器(API 提供者)分开,允许独立开发和部署。
无国籍: REST API 交互是无状态的,这意味着每个请求都包含要独立处理的所有必要信息。
可缓存: 可以缓存响应以提高性能并减少服务器负载。
阅读有关 REST API 的更多信息
何时使用它们: RESTful API 最适合需要可扩展性、简单性和互操作性的场景。 它们非常适合网络和移动应用程序,在这些应用程序中,数据检索的灵活性和易用性至关重要。 当在分布式系统环境中工作时,将它们用于资源上的 CRUD 操作(创建、读取、更新、删除)。
(来源:Seobility)
SOAP API
SOAP 代表简单对象访问协议。 这些 API 使用标准化 XML 进行消息格式化,通常通过 HTTP、TCP、SMTP 和其他协议进行操作。 它们采用严格的消息传递格式,包括用于定义服务接口的 WSDL。
SOAP API 由以下组件组成:
肥皂信封: SOAP 消息的外层,包含标头和正文部分。
SOAP 标头: 可选部分,提供有关消息的附加信息,例如路由或安全信息。
肥皂体: 包含正在交换的实际数据的强制部分。
肥皂操作: API 可以执行的特定操作,例如创建、检索、更新或删除数据。
何时使用: SOAP API 对于需要强大的安全措施、ACID 事务和错误处理的复杂企业级应用程序非常有用。 它们适用于标准合规性以及数据完整性和安全性内置机制至关重要的场景,例如金融交易。 与 REST 不同,它们也是独立于协议的。
阅读更多关于 SOAP API 及其与 REST 的比较.
GraphQL API
GraphQL 实际上并不是一个 API 协议,而是一种 API 的查询语言和运行时。 它允许客户端使用 HTTP 请求请求特定的数据结构。 GraphQL API 使用单个端点和具有无限数据模式的灵活查询语言。 与需要多次往返才能从不同端点获取所需数据的 REST API 不同,GraphQL 允许客户端在单个请求中指定他们所需的确切数据。
借助 GraphQL,客户端可以使用查询指定所需数据的形状和结构,服务器则使用与查询匹配的 JSON 数据进行响应,这有助于减少过度获取和获取不足的情况。
何时使用: 当需要根据客户需求优化数据获取时,GraphQL 是理想的选择。 它适合客户需要数据检索灵活性的场景,例如在移动应用程序或处理复杂数据结构时。
RPC API
RPC 代表远程过程调用,RPC API 通过允许一个程序执行另一系统上的过程来促进不同进程之间的通信。 RPC 协议返回方法而不是资源。 例如,RPC 协议可能返回服务器确认或错误,而 REST 协议可能给出文本文档。
RPC 有多种实现,例如 gRPC、XML-RPC 和 JSON-RPC。 每个都有自己的协议和方法来处理远程过程调用。 这些 API 通常用于构建分布式系统、客户端-服务器架构以及不同组件需要通过网络进行通信的其他场景。
何时使用: 当开发人员需要调用远程服务器上的函数或过程时,RPC API 非常有用。 它们是轻量级数据包和基本请求的合适选择。
现在您已经了解了不同的 API 类型,接下来让我们看看我们周围的更多 API 示例。
API 无处不在
数字世界充满了不同类型的 API。 它们充当应用程序之间的桥梁,允许它们交换数据。 以下是我们生活各个方面常用的 API 的一些示例:
天气 API: 这些 API 提供实时和历史天气数据,包括温度、降水、预报和天气警报。 天气应用程序、新闻网站和智能家居设备使用它们来让我们了解天气状况。
地图和导航 API: 这些 API 提供地图、方向和交通信息,支持导航应用程序和基于位置的服务。 谷歌地图和苹果地图就属于这一类。
社交媒体 API: Facebook、Twitter 和 Instagram 等社交媒体平台公开 API,允许开发人员将社交媒体功能集成到他们的应用程序中。 这使得共享内容、访问用户配置文件和管理社交互动成为可能。
支付API: PayPal、Stripe 和 Square 等 API 促进在线和移动支付。 这使得商家能够安全地接受付款并将付款处理集成到他们的网站或应用程序中。
电子商务API: 这些 API 为 Amazon 和 eBay 等电子商务平台提供构建块,支持产品目录管理、订单处理、库存跟踪和客户关系管理。
通讯API: Twilio 和 Plivo 等 API 使开发人员能够将短信、语音和消息传递功能集成到他们的应用程序中,从而实现实时通信和通知。
机器学习 API: Google Cloud AI、Amazon Rekognition 和 Microsoft Azure 认知服务等 API 为图像识别、自然语言处理和情感分析等任务提供机器学习功能。
开放数据API: 世界各地的政府和组织发布开放数据 API,提供对公共数据集的访问,使开发人员能够创建数据驱动的应用程序和可视化。
选择正确的 API – 需要考虑的因素
您选择的 API 类型将取决于您的特定用例。 但是,在选择 API 时您需要牢记某些通用原则,例如:
文档: 可靠的文档对于用户和开发人员来说都是一大优势,因为它可以帮助开发人员高效、成功地实现 API。 SOAP API 有一套严格的规则,而 REST 则更灵活。
安全性: API 应使用强大的加密和授权标准(例如 OAuth 2 和 SSL)来保护敏感数据。 某些 API(例如 RPC)的安全性低于其他 API,并且仅适合内部使用。 SOAP API 提供更好的安全性。
易用性和开发人员熟悉度: API 应该易于使用。 您的开发人员还应该熟悉所选的协议,因为它可以简化开发。 REST 是一个不错的选择,因为它是使用最广泛的协议。
API采用: 好的 API 很容易获得。 注册过程应该简单并具有强大的身份验证。 确保轻松采用的另一个方面是良好的聊天和实时支持。 这不仅限于注册 - 良好的支持还延伸到调试错误。 REST API 因其用户友好性而广受欢迎,并广泛应用于 Web 服务中。
可扩展性: 考虑 API 的预期使用量和流量模式。 如果您预计会有高流量或频繁请求,请选择可以有效处理大量数据的协议。 REST API 具有高度可扩展性,是一个不错的选择。
供应商生态系统: 第三方支持也很重要。 评估围绕该协议的供应商生态系统,包括第三方工具、库和管理平台的可用性。
提高您对 API 的了解
本博客只是对一些不同类型的 API 的介绍。 每个 API 类型都非常复杂且有趣,应该深入研究。 现在您已经有了基本的了解,您可以继续更详细地了解每种类型。
请查看我们的其他 API 博客以进行更深入的探索:
Web API 与 REST API
SOAP 与 REST
CRUD API
想要在无代码环境中构建强大的 API? 查看 我们的 API 创建指南.
进一步了解 Astera的API解决方案. Astera 使团队能够轻松安全地创建、发布和 监控 API 以无代码的方式简化整个 API 管理周期。
作者: 朱奈德·拜格