生成式AI及其对API和软件开发的影响
什么是API模拟?
软件开发的速度从未像今天这样快。近年来,由于云技术的快速采用和行业内的创新,用户期望和上市时间均急剧上升。
这些不断上升的期望迫使开发团队采取极端措施。例如,前端开发与后端服务开发并行进行的情况已不再罕见。这时,你可能会挠头想:“他们是怎么做到的?”在用户界面构建到一定程度之前,你就需要调用一些API。
当然,你可以在Web组件中硬编码JSON对象来模拟从可能的服务调用中获得的响应,但这种方法并不能提供足够的灵活性。你需要处理边缘情况、错误场景和其他成功的调用。
答案很简单:API模拟。
什么是API模拟?
API模拟是一种模拟真实、功能性服务的网络服务。模拟可用于提供当前正在开发的后端服务的示例响应,这使其非常适合我们上面描述的使用场景。假设你正在实践API优先的开发方法,那么在任何开发开始之前,你的API规范都应该是完整的。这意味着你知道需要进行的每个调用的所有端点、请求体和预期响应。
API模拟可以根据这些信息返回与规范完全匹配的数据。这样,你可以从一开始就构建你的服务调用,并在完成后将模拟URL替换为真实URL。如果你在制定开发计划时已经考虑到了这一点,那么它可能就像替换一个环境变量一样简单。
现在,我们了解到API模拟是一种返回与另一服务架构相匹配数据的真实服务。它可以返回各种成功的响应和错误场景。模拟可以代表整个API或单个端点,这完全取决于你的使用场景。
API模拟的好处远不止于让前端开发人员能够更快地工作。在开发生命周期的各个阶段,它们都有许多令人惊讶的用途。
第三方服务
大多数现代软件都会与至少一个第三方服务进行交互,比如像Stripe这样的支付服务、像OneLogin这样的多因素身份验证 服务,或者像Twilio这样的消息服务。在后端开发过程中,我们并不总是想对这些服务进行真实调用。它们通常以每次调用为基础产生费用,而且你也不希望通过将大量测试数据推送到这些服务中来污染你的环境。
在开发的早期阶段,可以使用API模拟来模拟对这些服务的调用。模拟数据可以用于测试你的开发工作流程并保持你的服务环境清洁。你还可以使用模拟来在你的代码中返回错误,以模拟服务中断,这将有助于你通过查看你的应用程序如何容忍外部系统中不可控制的故障来测试其整体恢复能力。
端到端测试构建
快速的开发周期经常要求团队使用持续集成和持续部署(CI/CD)管道,以便在准备就绪时尽快将更改推送到生产环境。这些管道依赖于功能测试(如单元测试、集成测试和端到端测试)来保证最新的更改不会破坏向后兼容性。端到端测试侧重于验证进行多个API调用的业务工作流程。如果你根据规范对整个API进行了模拟,那么你可以并且应该针对这些模拟构建测试。
你可以将业务工作流程构建为一个请求集合,将一个响应的结果链接到下一个请求的参数中。每个请求都调用模拟并断言响应状态码和模式是正确的。随着开发的进行,你将模拟替换为真实的端点。如果任何断言失败,则表示你在代码中发现了一个错误。
一旦你完成了所有端点的开发,你就已经在你的管道中拥有了可以依赖的端到端测试。
更快的DX迭代
并非所有API都在其顶部有用户界面。事实上,许多服务根本没有用户界面。服务开发人员不是将精力集中在友好的用户界面上,而是倾注于构建世界级的开发者体验(DX)。
开发者体验(DX)正如其名:它评估使用你的API的容易程度和直观性。API模拟将允许测试人员在设计的早期阶段就尝试与你的服务进行集成。这种方法可以打开一些问题的大门,比如“为什么这个数据没有在XYZ调用中返回?”、“我如何找到我的ABC设置?”以及“这不应该只是一个API调用吗?”
在编写任何代码之前获得这些问题很重要,因为它提供了宝贵的反馈,有助于以最小的返工量来塑造产品。
构建前需要了解的事项
你可能已经注意到,我之前说过模拟服务器使用集合(而不是API规范)来构建模拟服务器。你不能直接针对一个规范来构建一个模拟服务器。
但是,不能从与API规范关联的集合中构建模拟。因此,在从你的规范生成集合后,你需要将其复制到一个与你的API不关联的“独立集合”中。
复制后,你就可以创建你的模拟服务器了。如果你对集合进行了更改,模拟服务器将立即更新其响应以进行匹配,这样你就可以保持快速的迭代。
如果你正在对你的API规范和相关模式进行更改,我不建议更新模拟集合。更新规范,生成集合,然后从生成的集合中创建模拟服务器。这样,你就不必在多个位置手动更新模式了。
如何发现更多API模拟示例
幂简集成是国内领先的API集成管理平台,专注于为开发者提供全面、高效、易用的API集成解决方案。幂简API平台可以通过以下两种方式找到所需API:通过关键词搜索API(例如,输入’AI办公‘这类品类词,更容易找到结果)、或者从API Hub分类页进入寻找。
此外,幂简集成博客会编写API入门指南、多语言API对接指南、API测评等维度的文章,让开发者快速使用目标API。