在 SwaggerHub 中使用事件驱动的 AsyncAPI 规范

  2023 年 5 月 11 日

根据 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 从早期阶段到广泛采用。随着我们在 SwaggerHub 和整个工具产品组合中增加对 AsyncAPI 的支持,我们很高兴看到这些模式有多少可以应用于 AsyncAPI。  

在 SwaggerHub 中使用 AsyncAPI 的优势 

随着组织微服务架构的增长,同时使用 RESTful API 和事件驱动型 API 的混合模式变得越来越普遍。  

使用 SwaggerHub 的好处是集中管理这些不同 API 的目录,支持协作工作流,并通过标准化和治理降低成本。将 RESTful 和事件驱动型 API 紧密结合是管理 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 世界中,代码检查在 IDE 中显示,可以作为指引我们行动和阐明我们意图的路标。 

有关如何在 SwaggerHub 中使用 AsyncAPI 标准化以及当前支持的规则列表,请参阅  SwaggerHub 文档。 

Spectral 对标准化规则的影响  

在观察行业如何围绕 AsyncAPI 实现标准化时,当时领先的工具是 Spectral。SwaggerHub 中选择的规则列表深受 Spectral 针对 AsyncAPI 的规则集影响。这些规则基于开源社区在该领域所做的杰出工作。  

SmartBear 工具对 AsyncAPI 的支持  

SmartBear 致力于寻找新的方法来整合 API 生命周期中的不同部分,并缩小开发者可见性方面的差距。在测试 AsyncAPI 方面,我们已全面覆盖。 

领先的契约测试工具 PactFlow,可以轻松地在 AsyncAPI 相关破坏性变更在 SDLC 后期引发问题之前将其捕获——您可以对您的 Async 服务使用契约测试。目前,PactFlow 尚不支持 AsyncAPI,但开发此功能的工作已列入路线图。 

使用我们的顶级端到端测试工具 ReadyAPI 获得全面覆盖,该工具现已支持 AsyncAPI 定义。通过将 SwaggerHub 中生成和管理的 AsyncAPI 设计直接导入(集成)到 ReadyAPI 中进行测试,来构建您的 Kafka 堆栈。在此处阅读更多。 

CTA 方框:准备好开始使用 SwaggerHub 的 AsyncAPI 支持了吗?登录您的账户创建免费试用版。 

© . All rights reserved.