imnot:一个基于 YAML 定义的有状态应用程序接口模拟服务器,用于外部系统集成

发布日期:2026-04-17 09:23:18   浏览量 :0
发布日期:2026-04-17 09:23:18  
0

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

imnot 是一个开源的有状态应用程序接口模拟服务器。这是我构建它的原因。

改变你下午时光的那张工单

一张支持工单送达:“对于此特定交易,集成因空指针异常而失败。”

触发该错误的数据位于生产环境中。确切的字段值组合仅存在于那一条真实记录中。

正确的做法是在你的预发布环境中复现它。但是,在外部系统的演示用户界面中手动重建那条确切的记录——匹配每个字段值——可能需要数小时。有时这实际上是不可能的,因为外部系统的演示环境不支持与生产环境完全相同的配置。

你真正想要的是:从支持工单中获取确切的生产环境负载数据,将其上传到一个能原样返回该数据的模拟服务,将你的预发布系统指向该服务,并在几分钟内复现故障。无需手动重构。无需触碰生产环境。

这是促使我开发 imnot 的核心用例之一。我在酒店业的一家收益管理系统公司担任首席集成解决方案工程师,与外部合作伙伴(如物业管理系统、预订平台、渠道管理器)进行集成是日常工作。

NiFi 的变通方案及其局限性

我使用 Apache NiFi 进行集成工作流已有大约六年时间。NiFi 是一个数据流编排工具——并非专为模拟设计,但足够灵活,你可以用它构建几乎任何东西。

随着时间的推移,我构建了一系列 NiFi 流程来模拟外部系统的行为。模式如下:通过超文本传输协议上传负载数据,将你的应用程序配置为指向 NiFi 的统一资源定位符,该流程便会像真实的外部系统一样响应——包括某些系统所需的完整异步序列。我们用它来测试集成变更,而无需依赖实时的外部环境,并从支持工单中复现生产环境的错误,而无需触碰真实数据。

我们为此使用 NiFi,而不是 Postman 模拟服务器或 Mockoon,并不是因为 NiFi 在模拟方面更出色。仅仅是因为它已经存在。我们当时正用它来处理集成工作流,所以当出现对模拟端点的需求时,它自然成为了首选工具。

但它有一个难以突破的上限。

每一个新的模拟都需要具备 NiFi 的专业知识。构建一个模拟需要耗费可观的时间,而当速度成为首要任务时,质量就会受到影响。团队已经壮大,现在有更多人在使用 NiFi,但根本问题依然存在:模拟配置存在于 NiFi 流程内部,这意味着它没有与其所测试的集成代码一起进行版本控制,并且该圈层之外的任何人都无法访问它。

当人工智能编码工具在我们团队中普及时,某种契机出现了。非开发人员突然开始构建事物——生成配置、自动化以前需要专业知识才能完成的任务。我想:如果任何人都可以描述一个外部应用程序接口,并在几分钟内获得一个可工作的模拟服务,而无需了解 NiFi,也无需依赖专家,那会怎样?

这就是 imnot 的种子。

它的不同之处:基于 YAML 的有状态流程

大多数模拟服务器都能很好地处理无状态情况——为给定的端点定义一个响应,并每次返回该响应。这涵盖了很多场景,但并未涵盖在企业对企业集成中不断出现的模式。

考虑一个常见的异步流程:你的系统向外部应用程序接口发送一个 POST 请求,收到一个带有位置引用的 202 已接受 状态码,轮询该位置直到外部系统报告完成,然后获取结果。Thr

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部