用PHP写轻量Mock服务,一个api.php文件即可:设Content-Type、处理GET/POST/JSON body、支持状态码与延迟、配虚拟域名api.dev、严格对齐真实接口数据结构。

前端开发卡在接口没通、后端还没写完?直接用 PHP 写个轻量 Mock 服务,不装 Node、不配 Docker,改个 hosts 就能本地跑通。
用纯 PHP 文件快速返回 JSON 数据
最简方式:一个 api.php 文件搞定,适合单接口临时联调。
- 必须显式设置
Content-Type: application/json,否则前端fetch可能解析失败 - 用
$_GET或$_POST判断参数分支,比如api.php?status=error返回 500 模拟异常 - 别直接
echo json_encode($data)就完事——要加JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES避免中文转义和 URL 斜杠被编码 - 如果前端发的是
application/jsonbody,得用file_get_contents('php://input')读原始数据,再json_decode
用 Apache/Nginx 虚拟域名统一入口
避免前端硬编码 localhost:8000,也防止跨域问题。
- 在系统
/etc/hosts(macOS/Linux)或C:\Windows\System32\drivers\etc\hosts(Windows)末尾加一行:127.0.0.1 api.dev - Apache 配置
<VirtualHost *:80>指向你放api.php的目录;Nginx 则配server_name api.dev+root路径 - 前端代码里直接请求
https://api.dev/user/list,和最终上线域名一致,后期零改动 - 注意:HTTPS 会报证书错误,开发阶段用 HTTP 即可;若强制 HTTPS,需自签证书并信任,不推荐
按请求头或参数动态返回不同响应
光有固定 JSON 不够,真实联调要测 loading、空列表、权限不足、网络超时等场景。
前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。
立即学习“PHP免费学习笔记(深入)”;
- 检查
$_SERVER['HTTP_X_MOCK_STATUS']头,比 GET 参数更干净,不污染 URL - 用
header('HTTP/1.1 401 Unauthorized')主动设状态码,不能只靠 JSON 里"code": 401 - 模拟延迟:加
usleep(1000000)(1 秒),验证前端 loading 状态是否正常触发 - 模拟 CORS:加
header('Access-Control-Allow-Origin: *')和Access-Control-Allow-Methods,但上线前务必删掉
Mock 数据结构必须与真实接口严格一致
这是最容易被忽略、却导致联调返工最多的一点。
后端字段名改一个下划线、多嵌一层 data、时间戳格式从秒变毫秒,前端解析就崩。Mock 阶段就要对齐:
- 让后端提供一份 Swagger/OpenAPI 文档,或至少给个
curl -X GET http://real-api/user的原始响应,直接复制粘贴进 PHP 数组 - 不要手写
'user_id' => 123,而要照抄真实返回里的'userId' => 123(大小写、驼峰、下划线) - 数组键顺序不重要,但嵌套层级、
null/""/[]的类型必须一致——PHPjson_encode会自动处理,但初始化数组时别写错
















