我如何独自构建 Mock API 平台并将其部署到生产环境
Source: Dev.to
Introduction
每个我参与的项目都有同样的挫败感。
前端团队已经准备就绪,QA 已经就位,演示定在明天。
但后端还没准备好。于是大家只能等待。
我在小项目、代理公司、创业公司里都见过这种情况。它已经变得如此常见,以至于团队把它当作流程的一部分接受了。我不想再接受这种现状——于是我创建了 MockStation.io。
What is MockStation?
你可以定义端点、请求方法、请求头以及响应负载。MockStation 会为你生成一个实时、可分享的 URL,返回的内容完全像真实 API。JSON、XML、GraphQL——全部开箱即用。
我最自豪的部分是动态测试数据引擎。它不会每次都返回同样的静态 JSON,而是根据你定义的数据规则——姓名、邮箱、ID、日期、数值范围——在每次 API 调用时返回全新的、逼真的数据。这就是使用假数据与使用接近生产环境数据进行测试的区别。
The Stack
- Backend: FastAPI running on AWS Lambda (serverless, scales to zero when idle)
- Frontend: Next.js on Vercel
- Database: MySQL on RDS
- Auth: JWT + Google OAuth
我选择 Lambda 作为后端,因为 MockStation 的流量模式不可预测——新用户可能会连续一小时疯狂调用端点,然后又沉寂。为一直在线的服务器付费在这个阶段并不划算。Lambda 能让成本在没有实际负载时接近零。
FastAPI 是自然的选择——它快速、开发体验极佳,自动生成的 OpenAPI 文档在开发过程中为我省了很多时间。
The Hardest Part
Routing
构建 mock 服务器路由是最棘手的部分。每个组织都有自己的命名空间,例如 api.mockstation.io/acme-corp/v1/orders 会路由到对应团队的 mock 端点。实现子域名提取、路径匹配以及通配符路由,并在不同环境下保持可靠,花费的时间比预期更长。
Dynamic Data Engine
支持 {{faker.name}}、{{faker.email}}、随机范围以及条件响应,同时将响应时间控制在 100 ms 以下,需要精心的缓存设计。
What It Can Do Today
- 创建带有自定义方法、请求头、查询参数和响应体的端点
- 返回 JSON、XML、GraphQL、CSV 或 Excel 响应
- 在每次请求时生成动态、逼真的测试数据
- 立即与团队共享端点
- 在简洁的仪表盘中监控使用情况和请求历史
- 支持多项目和多团队
Where I Am Now
已上线。零用户。正在努力改变这一点。
产品已在 mockstation.io 上线,提供 30 天免费试用——无需信用卡。试用包括:
- 每月 15,000 次 API 请求
- 5 个项目
- 每个项目 10 条端点
- 支持 JSON、XML 和 GraphQL
付费套餐起价 $9/月,适用于需要更多资源的团队。
What’s Next
- Product Hunt 上线(下周)
- 端点调用的 Webhook 通知
- 带差异视图的请求历史
如果你曾因后端未准备好而被卡住——欢迎尝试并告诉我你的感受。
mockstation.io — 欢迎在评论区留下反馈。