如何选择Python REST API 框架?
2024年9个支持事件驱动 API 管理的工具
什么是API?
API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值:
- 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。
- API不仅仅是几行代码;这些是为移动开发人员等特定受众创建的。
- 这些有清晰的文档和版本,以满足用户的期望。
- 更好的治理和安全性,以及监控以管理性能和可扩展性。
如今,基本每家企业都会使用许多API类型,如支付处理API、开发者服务API、智能识别API、网站运营API等,以丰富企业的服务能力。
也出现了很多以销售API产品为主的企业,如百度智能云、易宝支付、翔云识别、Authing.cn….等,帮助客户解决某一方面的问题。
事件驱动架构正在崛起。Solace 公司的一项研究对 9 个国家的 840 名开发人员进行了调查,结果显示,在 2021 年,85% 的企业使用了事件驱动架构。72%的全球企业表示广泛采用了事件驱动架构,71%的企业表示利大于弊。
微服务的兴起是企业团队快速采用事件驱动 API 管理的原因之一。对构建解耦服务的渴望以及对实时、连续数据的需求也促使人们对事件驱动 API 管理产生了更多兴趣。
人们显然需要事件驱动型解决方案来支持 MQTT、数据流和物联网等异步协议。这给事件驱动 API 管理带来了挑战。随着事件驱动 API 管理变得越来越普遍,专门针对事件驱动范例开发的工具也大量涌现。下面我们就来看看其中的一些。
Apache Kafka
如果要使用事件驱动 API,就需要使用数据流。这有时意味着要将现有数据转换成数据管道。Apache Kafka 是创建数据流最流行的开源解决方案之一。考虑到其被广泛采用,Apache Kafka 拥有广泛的支持,包括许多库和各种开源工具。它还能与几乎所有开箱即用的工具配合使用,因此您不必为了开始使用 Apache Kafka 和数据流而浪费大量时间来排除故障。
RabbitMQ
RabbitMQ 是另一种用于创建数据流的流行开源工具。它是一个流行的异步消息传递平台,几乎可以将任何东西变成消息。考虑到 RabbitMQ 的受欢迎程度,有多种工具可帮助您将其集成到您的事件驱动 API 架构中。另一个好处是,它使用基于 HTTP 的 API 进行消息传递,因此易于管理和监控。
Gravitee
Apache Kafka 和 RabbitMQ 创建的数据流非常出色,但它们只适合内部使用。如果您希望在任何方面将事件驱动 API 管理对外,您就需要解决 API 管理和安全访问问题。遗憾的是,大多数现有解决方案都无法处理事件驱动型架构。
这一现实促使流行的开源 API 管理平台 Gravitee 创造了 "事件原生 API 管理 "这一术语。尽管该平台也可以管理同步 API,但它是专门为处理事件驱动架构而构建的。Gravitee 注重连接性,支持 pub/sub,并支持 MQTT 或 AMPQ 等多种异步格式,如果您要向公众提供连续数据,那么 Gravitee 值得您一试。
Axway
不必要的重复性任务是开发人员工作中最头疼的地方。往好了说,它们时间浪费。更糟糕的是,它们在多方面中增加了出错的风险。对于应用程序接口开发人员来说,能消除不必要的繁琐工作的工具简直就是完美的工具。
Axway 满足了一个简单但非常有用的需求。首先,它能让您将事件驱动 API 集成到现有的 API 目录中。更令人兴奋的是,它还能让您将目录中的其他 API 转换为事件驱动型 API。如果您正在寻找一种全面的 API 管理和目录,并能与事件原生 API 管理相结合,那么 Axway 值得您考虑。
AsyncAPI
正如我们所见,异步 API 是事件驱动 API 管理的神经系统。要实现事件驱动服务,就必须取消轮询,因为这需要一种不同的架构。AsyncAPI 是异步 API 最流行的 API 规范。这意味着它很容易上手,而且有很多工具和资源可供使用。如果您有意将事件驱动 API 集成到网络中,我们强烈建议您熟悉 AsyncAPI。
Webhooks
实现事件驱动 API 管理的最常见方法之一是创建网络钩子,让用户注册以接收来自 API 的更新。网络钩子本质上是一个公开可用的 HTTP POST 端点,可以从指定来源接收数据。设置 Webhook 从 API 生产者处接收数据,就好比颠覆了传统 API 的工作方式。当 API 希望发生某些事情时,它不会进行查询,而是在有趣的事情发生时进行广播。这是消除疯狂轮询的一种简单而优雅的方法。
WebSockets
WebSockets 的工作原理与 Webhooks 类似,但允许从双方获取数据。WebSockets 的设置与 Webhooks 几乎完全相同,因此上手简单快捷。如果你想创建一个你和你的用户都能访问的端点,WebSockets 值得一试。
Server-Sent Events (SSEs)
Server-Sent Events(或 SSE)与 Webhooks 类似,但专门针对基于浏览器的用户。要使用它们,用户需要创建一个新的 EventSource 对象,并输入端点的 URL。然后,SSE 会监控该端点的事件。不过,与其他格式不同的是,SSE 既可以持续打开,也可以在一段时间不活动后关闭。这对某些应用可能很有用。
OntoPop
观察架构的运行是学习不同编程方法的最佳途径之一。OntoPop 是一个有趣的开源应用程序,它使用事件驱动数据管道和 API 来可视化和探索本体的版本。最重要的是,GitHub 存储库中有大量的文档和许多 OntoPop 工作示例。光是阅读 README 就足以让人领略到事件驱动 API 架构和执行的奥妙。
关于事件驱动型应用程序接口管理的最终想法
有许多应用程序都需要实时、持续的监控和警报。在当今以数据为中心的世界里,只采用可以查询或轮询的 API 架构是没有意义的。这些应用只会越来越多,尤其是随着物联网等工具的不断普及。
在许多不同的应用场景中,事件驱动的 API 管理都是必须的。因此,您最好现在就适应这种格式。这九种用于事件驱动 API 管理的工具应该足以让你入门。
参考说明
原文链接:https://nordicapis.com/9-tools-that-enable-event-driven-api-management/