在整个 api 生命周期中使用模拟服务器

APIGit

2023-04-25

The-Many-Ways-to-Use-Mock-Servers

在整个 API 生命周期中使用模拟服务器

模拟服务器是解决整个开发过程中出现的各种意外挑战的有用解决方案。与多个 API 集成可能非常耗时,个人平均花费 16% 的时间进行调试,而在理想状态下仅为 10%。外部依赖和并发的团队努力也可能导致延迟和挫败感。然而,通过使用模拟服务器,开发人员可以最大限度地减少这些挫折和中断,使其成为贯穿整个开发生命周期的宝贵工具。

什么是模拟服务器?

需要澄清的是,模拟服务器是 Apigit 平台中可用的一种工具,它使开发人员能够模拟 API 请求和响应。当请求发送到模拟服务器时,它会将请求配置与保存的示例进行匹配,并提供带有相应数据的响应。

模拟服务器提供了一种在生产环境中模拟 API 响应的方法,无需开发人员编写任何代码。通过使用模拟服务器,缩短了 API 基础架构开发中的反馈循环,从而实现更快的迭代和更快速的开发。

在这篇博文中,我们将讨论使用模拟服务器的好处以及它们如何改进您的开发工作流程。 Apigit 提供了几种创建模拟服务器的方法,我们将详细探讨这些方法。

使用模拟服务器进行协作

在大多数情况下,开发项目涉及多个团队和个人同时处理项目的不同方面。这包括前端开发人员、后端开发人员、QA 工程师和其他专家,即使在较小规模的项目中也是如此。为了最大限度地提高生产力和效率,团队通常同时处理项目的不同部分。

模拟服务器是一种多功能工具,可以帮助在整个开发过程中保持效率,从而使 API 生产者和消费者都受益。它们可以在 API 开发生命周期的各个阶段使用。例如,当前端团队想要集成来自后端或服务器的数据时,可以使用模拟服务器来模拟尚未完全配置或运行的 API 端点。这确保即使在没有完整的 API 功能的情况下,前端工程也是准确且可行的。

可以在开发过程的早期阶段使用模拟服务器,例如在设计阶段。 Apigit 使开发人员能够根据 API 规范创建模拟服务器,而不是等待 API 端点被开发和部署,它可以模拟服务器响应以供前端使用。这允许 UI 开发人员通过查询模拟服务器并处理预期的响应来立即开始。一旦实际 API 准备就绪,开发人员就可以将模拟 API 响应的 URL 替换为真实 API 的 URL(以及任何必要的授权)。

通过模拟外部依赖项进行有效测试

API 和开发项目不是孤立的实体,后端开发往往需要与外部服务集成。但是,对外部服务器的调用是您无法控制的,它们会产生不可预测和不可靠的结果,例如返回 503 Service Unavailable 错误。如前所述,调试 API 问题可能会占用总开发时间的 16%。当一个项目依赖于多个外部 API 时,可能会遇到访问失败的 API 的问题,这可能会阻碍进度。然而,这些问题不一定会使开发完全停止。

外部 API 调用通常是开发工作流的关键组成部分,但在开发过程中依赖外部服务可能存在风险。为了减轻这种风险,可以使用模拟服务器来模拟访问外部服务器并返回预期响应的体验。这在调用外部服务器或 API 是开发过程的关键组成部分的情况下特别有用。

在这种情况下,模拟服务器有助于开发生命周期的本地测试和开发阶段。让我们探索一个理论示例:

假设您正在开发一个带有订购流程的电子商务应用程序,其中您的 API 与需要保持同步的运输服务相结合。具体来说,当一个项目被添加到电子商务应用程序中的购物车时,它也应该被添加到运输服务的购物车中,以便运输服务可以跟踪需要运输的东西。这意味着对您的 API 发出的每个请求也会触发对运输服务 API 的请求。

A visual example of testing an e-commerce site but productivity is stopped because of an issue in the Shipping API 测试电子商务网站但由于运输 API 中的问题而停止生产的可视化示例

API 开发的一个关键部分是确保项目所依赖的外部服务或 API 正常运行并返回预期结果。但是,对外部服务器的调用并不总是可靠的,并且会产生意外错误,从而需要进行调试。在这种情况下,模拟服务器可以派上用场,它可以模拟访问外部服务器并返回预期响应的体验。

在开发生命周期的本地测试和开发阶段,模拟服务器有助于隔离工作流中的各个 API。通过为外部 API 配置模拟服务器,例如电子商务应用程序中的运输服务 API,尽管 API 已关闭,但仍可以根据 API 的预期结果继续工作。这使测试过程更加高效,并减少了项目因 API 故障而停止的可能性。

在测试电子商务应用程序的订购流程时,API 需要与运输服务保持同步。但是,如果运输 API 返回错误或已关闭,则可能会导致开发和测试延迟。为了避免这种依赖性,可以使用模拟服务器来模拟来自外部服务的预期响应。借助 Apigit,开发人员可以单独测试每个 API 并确定具体问题。通过为运输 API 配置模拟服务器,即使运输 API 出现故障,开发人员也可以根据预期结果继续工作。下图显示了相同的工作流程,其中模拟服务器替换了运输 API,只要内部 API 按预期运行,测试就可以不间断地继续进行。

A visual example of testing the e-commerce site while using a mock server to simulate the Shipping API 使用模拟服务器模拟运输 API 时测试电子商务网站的可视化示例

跟我说数据

无论使用何种协议或 HTTP 动词,数据共享都是 API 的核心。但是,此数据可能包含您可能不想用于测试目的的敏感个人信息。另一方面,使用像“John Doe”这样的占位符数据会变得单调和不切实际。这就是模拟服务器派上用场的地方。

模拟服务器对于管理日常测试和棘手的用例非常有用,包括那些需要保护私有数据或当您想要模拟类似生产的工作流时。

使用 Apigit,您可以通过从一系列紧密耦合的请求和相应的响应示例中生成动态数据来为您的模拟服务器创建动态数据。您可以自定义响应以满足您的需要,而不是依赖于默认保存的示例。

实现此目的的一种方法是编辑响应示例以包含动态变量。这种方法使您的模拟服务器能够利用内置库并提供模拟真实世界数据的虚拟数据。

互联网是一个不可预测的地方——让模拟为您的开发生命周期带来秩序

开发人员可以采用与体育运动类似的思维方式,他们专注于控制可控因素。在开发中,外部API的稳定性并不总是在你的掌控之中,但是可以使用模拟服务器来模拟应该发生的事情,减少意外问题。通过使用模拟服务器,开发人员可以创造他们有效开展工作所需的稳定性。因此,让模拟服务器成为开发人员实现目标所需的稳定性,而不会出现任何混乱或意外问题。