根据 SmartBear 最新的 2023 年软件质量状况 – API,微服务仍然是组织中 API 的主要增长驱动力。
自 REST 和 SOAP 以来,API 世界已经取得了巨大的发展。虽然请求-响应 API 不会消失,但事件驱动架构 (EDA) 正在成为组织中改进的核心组件。它们充当 RESTful 和其他 API 系统可以与之集成的中央总线。对于希望更好地管理其扩展的微服务领域的开发团队而言,EDA 提供了一种更灵活、可扩展的解决方案。
虽然 EDA 已经稳步确立了自己的地位,但需要对这些系统进行更多的管理和控制。今天,AsyncAPI 开源计划旨在为 EDA 带来 OpenAPI 和 Swagger 为 RESTful 系统带来的功能。
EDA 通过跨 B2B 和 B2C 垂直领域(如电子商务、金融服务和保险)的解耦服务和集中式基础设施,提供了增强的开发者体验。
SwaggerHub 欢迎支持 AsyncAPI
虽然事件驱动的 API 不像 RESTful API 那样被广泛采用,但它们越来越受欢迎。AsyncAPI 是记录和描述事件驱动的 API 架构的主要规范。与 OpenAPI 一样,组织将选择采用 AsyncAPI 来控制和管理其事件驱动的 API。
在 SmartBear,我们已经见证并管理了 Swagger 和 OpenAPI 从早期阶段到广泛采用的整个过程。我们很高兴看到其中许多模式可以应用于 AsyncAPI,随着我们在 SwaggerHub 和整个工具组合中增加支持。
在 SwaggerHub 中使用 AsyncAPI 的好处
随着组织的微服务架构的增长,同时混合使用 RESTful 和事件驱动的 API 变得越来越常见。
使用 SwaggerHub 的好处是集中编目这些不同的 API,支持协作工作流程,并通过标准化和管理降低成本。将 RESTful 和事件驱动的 API 紧密地放在一起是管理产品组合的重要一步。通过这个单一的 API 目录,开发人员、架构师、设计师和消费者都可以从改进的发现和更高的管理中受益。
SwaggerHub 为整个组织的团队提供了 API 设计、文档、协作和标准化方面相同的 AsyncAPI 和 OpenAPI 体验。
为什么标准化很重要
根据 2023 年软件质量状况 – API – 51% 的受访者认为标准化是他们需要解决的首要挑战。
让我们考虑一个场景:作为一个组织,您可能会决定您的 API 定义需要有联系方式。这是一个小细节,高级设计师需要不断提醒新设计师添加并确保它们存在。小事情会产生重大影响。在这种情况下,很容易想象浪费在搜索正确的联系人上的时间量。
除了这种情况之外,团队在不使用 API 标准化时可能会遇到的其他陷阱包括:
- 安全风险 - 如果 API 的设计没有考虑到安全性,则存在暴露敏感数据的风险。
- 集成问题 - 在理解不同的 API 及其工作方式方面可能会浪费时间。此过程中的任何误解都会导致错误。
- 成本增加 - 需要更多的提前时间和资源来开发和维护 API,并且很难找到熟悉 API 的开发人员。
- 数据格式不一致 - 当 API 数据格式不一致时,会导致较差的开发者体验和潜在的集成问题。
- 可扩展性降低 - 随着添加更多 API,如果它们不标准化,则更难扩展。
SwaggerHub 中的 AsyncAPI 标准化
回到上面的场景,确保这些细节永远不会被遗忘的最佳方法是使用 SwaggerHub 将标准化添加到设计过程中,现在支持 RESTful 和 Async 规范。通过在两种协议中使用标准化实践,团队可以加快设计速度,同时保持质量和样式一致性。您可以使用自定义和内置规则来强制执行组织特定样式指南的 API 管理。开发团队可以确信他们创建的 API 将通过内部检查并按设计工作。
值得一提的是 API 产品组合标准化的一个要素 - linting。当发生拼写错误时,我们在 Microsoft Word 中都认识的红色波浪线。在 API 的世界中,linting 会在 IDE 中显示出来,它可以作为引导我们行动和阐明我们意图的路标。
请参阅如何在 SwaggerHub 中使用 AsyncAPI 标准化以及当前支持的规则列表,请参阅 SwaggerHub 文档。
Spectral 对标准化规则的影响
当看到行业如何围绕 AsyncAPI 实现标准化时,当时的主要工具是 Spectral。SwaggerHub 中选择的规则列表在很大程度上受到 AsyncAPI 的 Spectral 规则集的影响。这些规则是基于开源社区在那方面所做的出色工作。
SmartBear 工具的 AsyncAPI 支持
SmartBear 致力于寻找集成 API 生命周期不同部分并缩小开发人员可见性差距的新方法。在测试 AsyncAPI 时,我们已经涵盖了所有基础。
领先的合同测试工具 PactFlow 使您可以轻松捕获与 AsyncAPI 相关的重大更改,然后再在 SDLC 的后期阶段引起问题 - 您可以将合同测试用于 Async 服务。目前,PactFlow 不支持 AsyncAPI,但创建此功能的工作正在 路线图上。
使用我们首屈一指的端到端测试工具 ReadyAPI 获得全面覆盖,该工具现在支持 AsyncAPI 定义。通过将 SwaggerHub 中生成和管理的 AsyncAPI 设计直接导入 ReadyAPI 进行测试,来构建您的 Kafka 堆栈。 在此处阅读更多内容。
CTA 框:准备好开始使用 SwaggerHub 的 AsyncAPI 支持了吗? 登录您的帐户或创建免费试用。