写前端的时候最烦什么?后端接口还没影,页面上的列表、头像、报名时间全得靠手写假数据。写死一份JSON,字段对不上要改,数量不够要补,嵌套结构一深就乱。Stanza这个开源工具想干的事很直接:把一句自然语言描述,变成一个活的、有状态的Mock REST接口。
它的用法不复杂。你给它一句「生成一个包含20个在线用户的列表,字段有id、name、avatar和last seen」,它会解析这句话,生成对应的schema蓝图,然后当场开出一个可调用的mock端点。要测延迟就加?delay=2000,要测异常分支就加?status=500,不用等后端配合。
功能清单按素材里的说法逐条摆出来:
- 支持完整的CRUD操作,GET、POST、PUT、DELETE都能打
- 支持自定义数据载荷
- 支持基于查询参数的模拟,比如用?delay=5000制造人为延迟,用?status=500指定返回状态码
- 能处理嵌套结构,比如带participant数组的聊天schema、带嵌套字段的用户档案
技术栈这块值得单独说。蓝图引擎用的是通过Groq调用的开放权重模型qwen/qwen3.8-27b,开了严格JSON输出模式,专门从自然语言里抽出schema结构和记录条数。数据填充没有走闭源API,而是把@faker-js/faker和一个递归schema生成器拼在一起,深层嵌套的JSON、子对象、数组都能自己长出来,不会卡在token瓶颈上。
存储层用的是MongoDB Atlas,策略是单文档集合加TTL索引,靠expiresAt字段让临时mock端点到期自动清理。素材里给的生命周期范围是从几分钟到48小时。这么设计是为了绕开免费层的集合数量限制——一个端点一个集合的话,很快就撑爆了。
延迟和状态码的模拟是内置中间件做的,一个负责把响应延迟钳制在设定值,一个负责动态覆盖HTTP状态码。对前端和独立开发者来说,这两样东西在联调前就能把loading态和错误态跑一遍,比对着空气写try-catch实在。
为什么非要选开放权重模型?素材里的解释是:prompt到schema的翻译需要高频、低延迟的JSON抽取,开放权重模型给了完整的架构控制权,没有厂商锁定,还能在外部AI节点限流或冷启动时挂一层本地兜底启发式,保证应用不崩。换成闭源API,自定义schema解析管线会被限制,一个开发者工具还得背上持续的成本。
项目以AGPL-3.0协议开源,有在线部署地址和GitHub仓库。定位说得很清楚:给前端开发者和独立黑客在真后端落地之前做原型用。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.